首頁 >後端開發 >php教程 >如何修復' sqlstate [hy000] [2002]連接拒絕' github動作中的laravel錯誤

如何修復' sqlstate [hy000] [2002]連接拒絕' github動作中的laravel錯誤

Karen Carpenter
Karen Carpenter原創
2025-03-06 02:29:12662瀏覽

How to fix

GitHub動作簡化了GitHub存儲庫的連續集成(CI)。 YAML Workflow文件自動化測試和部署等任務。 常見的Laravel/MySQL CI障礙是“ SQLSTATE [HY000] [2002]連接拒絕”錯誤,通常在初始測試遷移期間出現。 本文探討了三個頻繁的原因及其解決方案。

>有效的github操作工作流(示例)

> 進行故障排除之前,讓我們檢查功能性的laravel/mysql github操作工作流程:

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。 mysql端口

不正確 >最常見的罪魁禍首:不匹配的端口號。 github操作將隨機端口分配到服務容器的

3306

    >動態端口:
  • 使用訪問分配的端口: ${{ job.services.mysql.ports['3306'] }}
- name: Run tests
  run: php artisan test
  env:
    DB_PORT: ${{ job.services.mysql.ports['3306'] }}
    >硬編碼端口:
  • >明確定義端口(例如,在工作流程和>。 33306.env.ci 2。缺少mysql服務

>忽略定義是一個頻繁的監督。 上面的工作流程證明了正確的包含。 沒有它,連接失敗了。

3。 mysql不可用services

即使定義了服務,MySQL也可能不會立即響應。服務定義中的參數至關重要:>

>這確保工作流程等待,直到MySQL準備就緒為止。 沒有此,測試可能會過早運行,從而導致連接錯誤。 options> mysql

結論
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3

>本指南涵蓋了“ sqlstate [hy000] [2002]連接的三個關鍵原因,拒絕了github Actions laravel/mysql工作流中的錯誤。 解決端口映射,服務定義和MYSQL準備就緒可確保CI過程更順暢。 對於生產應用穩定性,請考慮與Laravel很好地集成的HoneyBadger等強大的錯誤監視工具。

以上是如何修復' sqlstate [hy000] [2002]連接拒絕' github動作中的laravel錯誤的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn