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

Docker部署Laravel+MySQL+phpMyAdmin时phpMyAdmin登录报错求助

解决思路

1. 确保phpMyAdmin与MySQL处于同一网络

你的phpmyadmin服务未显式指定加入zervetek网络,尽管配置了depends_on,但Docker默认会将未指定网络的服务加入默认网络,导致它无法解析database主机名。修改phpmyadmin部分配置,添加网络声明:

phpmyadmin:
  depends_on:
    - database
  image: phpmyadmin/phpmyadmin
  restart: always
  ports:
    - 8088:80
  environment:
    - PMA_HOST=database
    - MYSQL_ROOT_PASSWORD=123
  networks:
    - zervetek  # 加入与MySQL相同的网络

2. 验证MySQL服务是否完全就绪

depends_on仅保证容器启动顺序,不确保MySQL服务已完成初始化。可以通过以下方式排查:

  • 查看MySQL容器日志:docker logs database,确认日志中出现ready for connections字样。
  • 若MySQL启动较慢,可给phpMyAdmin添加启动延迟,避免提前发起连接:
phpmyadmin:
  # 其他配置不变
  command: sh -c "sleep 10 && apache2-foreground"

3. 检查主机名与环境变量一致性

确认PMA_HOST的值database与MySQL服务名称完全一致(Docker服务名大小写敏感),同时核对MYSQL_ROOT_PASSWORD与MySQL容器的对应配置是否匹配。

4. 手动测试容器间网络连通性

进入phpMyAdmin容器,直接测试与MySQL的网络连通性:

  • 获取phpMyAdmin容器ID:docker ps | grep phpmyadmin
  • 进入容器:docker exec -it <容器ID> /bin/bash
  • 执行ping命令:ping database,若无法ping通则说明网络配置存在问题;若能ping通,再测试MySQL连接:mysql -h database -u root -p123,验证是否能成功连接。

5. 重建容器与网络

Docker网络缓存可能引发异常,尝试清理现有容器和网络后重新部署:

docker-compose down -v  # -v会删除关联卷,若有重要数据请先备份
docker-compose up --build

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 14:12:40