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

Docker容器中运行Laravel迁移报错:SQL连接拒绝如何解决?

解决Laravel Docker环境下数据库连接拒绝问题

1. 修正数据库端口配置

你的.env文件中DB_PORT设置为33060,这是错误的:

DB_PORT=33060

Docker容器内的MySQL默认端口为3306,修改为:

DB_PORT=3306

2. 修正MySQL环境变量拼写错误

docker-compose.yml中MySQL的环境变量MYSQL_DATABSE拼写错误,少了一个字母S:

MYSQL_DATABSE: laravel

改为正确的:

MYSQL_DATABASE: laravel

3. 确保MySQL容器完全启动后再执行迁移

MySQL容器启动需要时间完成初始化,直接执行迁移会因数据库未就绪导致连接拒绝。可以通过两种方式处理:

  • 手动等待:启动容器后,等待10-15秒再进入Laravel容器执行迁移
  • 命令等待:进入Laravel容器后,先执行循环命令等待MySQL就绪(需容器内安装netcat,大部分镜像已自带):
while ! nc -z mysql-app 3306; do sleep 1; done

等待完成后再执行php artisan migrate

4. 重新加载配置并重启容器

修改配置后,执行以下步骤生效:

  1. 停止并删除现有容器:
docker-compose down
  1. 重新构建并启动容器:
docker-compose up --build -d
  1. 进入Laravel容器后,清理配置缓存:
php artisan config:clear

之后再执行迁移命令即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 09:50:17