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

Docker部署Laravel遇SQLSTATE[HY000][1045]数据库访问拒绝问题求助

解决Laravel Docker部署中MySQL访问拒绝错误

1. 修正密码不匹配问题

你的docker-compose.yml中MySQL的MYSQL_ROOT_PASSWORD配置为F450pH3Af*v9kGfLzfYxgSAlH1V@PnZ*pC4,但Laravel .env文件里的DB_PASSWORD是secret,两者不一致是导致错误的直接原因。

修改.env文件的密码配置:

DB_PASSWORD=F450pH3Af*v9kGfLzfYxgSAlH1V@PnZ*pC4

2. 清理旧数据卷(密码修正后仍无效时)

由于使用了db-data持久化数据卷,旧的数据库用户配置可能被缓存,需要彻底重置:

  • 停止并删除容器及数据卷:
docker-compose down -v
  • 重新启动服务:
docker-compose up -d

3. 验证并修复用户权限

如果上述步骤无效,进入MySQL容器检查root用户权限:

  • 进入容器:
docker-compose exec database mysql -uroot -pF450pH3Af*v9kGfLzfYxgSAlH1V@PnZ*pC4
  • 执行授权命令,允许root从任意主机访问:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'F450pH3Af*v9kGfLzfYxgSAlH1V@PnZ*pC4' WITH GRANT OPTION;
FLUSH PRIVILEGES;

4. 测试容器网络连通性

确认Laravel容器能正常访问database服务:

  • 进入Laravel容器(替换为你的容器名称):
docker-compose exec laravel-app bash
  • 测试MySQL连接:
mysql -h database -uroot -pF450pH3Af*v9kGfLzfYxgSAlH1V@PnZ*pC4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 04:12:47