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

Docker Compose双数据库容器配置中无法连接第二个MySQL容器

问题解决:phpMyAdmin无法连接第二个MySQL容器

问题根源

你给phpmyadmin2配置的PMA_PORT=3307是错误的——3307是宿主机上的映射端口,Docker容器之间通信时,必须使用容器内部的端口,也就是MySQL默认的3306。容器间通过服务名(mysql_logs)访问时,直接用容器自身的端口即可,和宿主机的映射端口无关。

修正后的核心配置

修改phpmyadmin2的环境变量,同时添加依赖确保mysql_logs先启动:

phpmyadmin2:
  image: phpmyadmin
  restart: always
  ports:
    - 8081:80
  environment:
    - PMA_HOST=mysql_logs
    - PMA_PORT=3306  # 改为容器内部的MySQL默认端口
    - PMA_USER=root
    - PMA_PASSWORD=root
  depends_on:
    - mysql_logs  # 保证mysql_logs服务优先启动

进阶优化(可选)

如果MySQL 5.6启动较慢,可能出现phpMyAdmin启动后MySQL还未就绪的情况,可给mysql_logs添加健康检查,确保服务就绪后再启动phpMyAdmin:

mysql_logs:
  image: mysql:5.6
  restart: on-failure
  environment:
    MYSQL_ROOT_PASSWORD: root
    MYSQL_DATABASE: logs
  ports:
    - '3307:3306'
  healthcheck:
    test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-proot"]
    interval: 10s
    timeout: 5s
    retries: 5

然后更新phpmyadmin2的依赖配置(需Docker Compose 3.x版本):

phpmyadmin2:
  # 其他配置不变
  depends_on:
    mysql_logs:
      condition: service_healthy

验证步骤

  1. 停止当前服务:docker-compose down
  2. 重新启动服务:docker-compose up -d
  3. 访问localhost:8081测试数据库连接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 21:17:46