首页 >后端开发 >php教程 >如何修复' sqlstate [hy000] [2002]连接拒绝' github动作中的laravel错误

如何修复' sqlstate [hy000] [2002]连接拒绝' github动作中的laravel错误

Karen Carpenter
Karen Carpenter原创
2025-03-06 02:29:12654浏览

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