Rumah >pembangunan bahagian belakang >tutorial php >Cara Memperbaiki 'SQLSTATE [HY000] [2002] Sambungan menolak' Kesalahan Laravel dalam Tindakan GitHub
aliran kerja GitHub yang sah (contoh)
Sebelum menyelesaikan masalah, mari kita periksa aliran kerja Laravel/MySQL GitHub yang berfungsi:
name: Run tests on: [push] jobs: tests: name: Run tests runs-on: ubuntu-latest services: mysql: image: mysql:8 env: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: testing ports: - 3306:3306 options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 steps: - uses: actions/checkout@v4 with: fetch-depth: 1 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: 8.3 - name: Run composer install run: composer install -n --prefer-dist - name: Prepare Laravel Application run: | cp .env.ci .env php artisan key:generate - name: Run tests run: php artisan test
: .env.ci
<code>DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=testing DB_USERNAME=root DB_PASSWORD=password</code>
1. Port MySQL yang salah
Punca yang paling biasa: Nombor port yang tidak sesuai. Tindakan GitHub menyerahkan port rawak ke kontena perkhidmatan. 3306
${{ job.services.mysql.ports['3306'] }}
- name: Run tests run: php artisan test env: DB_PORT: ${{ job.services.mysql.ports['3306'] }}
33306
.
.env.ci
Menghadap definisi
adalah pengawasan yang kerap. Aliran kerja di atas menunjukkan kemasukan yang betul. Tanpa itu, sambungan gagal.
services
Walaupun dengan perkhidmatan yang ditakrifkan, MySQL mungkin tidak segera responsif. Parameter
dalam definisi perkhidmatan adalah penting: options
mysql
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
Kesimpulan
Panduan ini meliputi tiga sebab utama untuk sambungan "SQLSTATE [HY000] [2002] menolak" kesilapan dalam tindakan GitHub Laravel/MySQL. Menangani pemetaan pelabuhan, definisi perkhidmatan, dan kesediaan MySQL memastikan proses CI yang lebih lancar. Untuk kestabilan aplikasi pengeluaran, pertimbangkan alat pemantauan ralat yang teguh seperti Honeybadger, yang mengintegrasikan dengan baik dengan Laravel.
Atas ialah kandungan terperinci Cara Memperbaiki 'SQLSTATE [HY000] [2002] Sambungan menolak' Kesalahan Laravel dalam Tindakan GitHub. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!