You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 10 CI/CD测试遇SQLSTATE[HY000] [2002]错误,求助解决

解决GitHub Actions中Laravel测试MySQL连接失败问题

针对你遇到的SQLSTATE[HY000] [2002] No such file or directory错误,以下是具体修复方案:

1. 调整数据库连接HOST配置

在.env.ci文件中,将DB_HOST=localhost改为DB_HOST=127.0.0.1。

原因:Ubuntu环境下,PHP的MySQL驱动会优先将localhost解析为Unix socket连接,但mirromutth/mysql-action启动的MySQL默认使用TCP端口3306,且socket路径可能与PHP默认配置不匹配。改用127.0.0.1会强制PHP通过TCP协议连接MySQL,规避socket路径不兼容问题。

修改后的.env.ci相关配置:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db-testing
DB_USERNAME=root
DB_PASSWORD=test

2. 添加MySQL服务就绪等待步骤

在Workflow中,启动MySQL后新增步骤,确保服务完全启动并可连接后再执行后续操作:

修改后的Workflow配置:

name: Run tests

on:
  push:
    branches:
      - master
      - develop

jobs:
  tests:
    name: Run tests
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: '8.2'
          extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, pdo_mysql, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv
          coverage: none

      - uses: mirromutth/mysql-action@v1.1
        with:
          mysql database: db-testing
          mysql user: root
          mysql password: test

      # 等待MySQL服务就绪
      - name: Wait for MySQL availability
        run: |
          until mysql -h 127.0.0.1 -u root -ptest -e "SELECT 1"; do
            sleep 2
          done

      - name: Run composer install
        run: composer install -n --prefer-dist

      - name: Prepare Laravel Application
        run: |
          cp .env.example .env
          cp .env.ci .env.testing
          php artisan optimize:clear
          php artisan key:generate

      - name: Run tests
        run: php artisan test

3. 额外检查项

  • 确认setup-php步骤中已启用pdo_mysql扩展(上述配置已添加),这是PHP连接MySQL的必要扩展。
  • 若仍有问题,可尝试升级mirromutth/mysql-action到最新版本(如v1.2),确保与GitHub Actions环境兼容。

内容的提问来源于stack exchange,提问作者Badr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 22:02:10