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

Laravel部署于Docker环境中无法连接数据库求助

Laravel Docker环境数据库连接问题排查方案

核心问题修复

  1. 端口配置错误
    容器内部通信需使用MySQL容器的内部端口3306,而非映射到宿主机的3316。修改.env中的端口配置:
DB_PORT=3306
  1. docker-compose语法错误
    depends_on字段中-mysql缺少空格,修正后:
depends_on:
  - mysql
  - php

额外排查项

  • MySQL 8.0认证插件兼容问题
    Laravel旧版本可能不支持MySQL 8.0默认的caching_sha2_password认证插件,可在mysql服务的环境变量中强制使用旧插件:
mysql:
  image: mysql:8.0
  environment:
    # 保留原有配置
    - MYSQL_DEFAULT_AUTH=mysql_native_password

修改后需重建MySQL容器:docker-compose down -v && docker-compose up -d

  • Laravel配置缓存失效
    若之前执行过php artisan config:cache,会导致.env修改不生效,进入PHP容器执行:
php artisan config:clear
  • 容器网络连通性验证
    进入PHP容器测试与MySQL容器的网络连通性,确认网络正常:
docker-compose exec php ping mysql
# 或测试端口连通
docker-compose exec php telnet mysql 3306

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 12:52:05