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

如何用Docker-Compose配置多MySQL服务并通过单PhpMyAdmin访问

多MySQL服务+单PhpMyAdmin配置问题解决方案

核心问题分析

报错getaddrinfo for mysql failed是因为PhpMyAdmin配置的PMA_HOST=mysql,但你的Docker Compose中不存在名为mysql的服务,导致容器无法解析这个主机名。另外配置中还有两处小错误需要修正。

1. 修正配置错误

  • 依赖项错误:phpmyadmin服务的depends_on中写了错误的服务名done,应改为dbone。
  • 冗余环境变量:两个MySQL服务中的MYSQL_HOST=mysql属于无效配置,这个变量是给MySQL客户端容器用的,服务器容器不需要,直接删除。

2. 利用PMA_ARBITRARY实现多数据库连接

你已经配置了PMA_ARBITRARY=1,这个参数允许PhpMyAdmin连接任意MySQL服务器,无需指定固定PMA_HOST(可直接删除原配置中的PMA_HOST=mysql)。登录时按以下操作:

  • 打开localhost:8070进入登录页
  • 在服务器输入框中,输入对应MySQL服务名:
    • 连接第一个数据库:输入dbone
    • 连接第二个数据库:输入dbtwo
  • 输入用户名(user)和密码(test),或使用root账号(root/test)登录

3. 修正后的完整配置文件

version: '3.9'
services:
  dbone:
    image: mysql:latest
    restart: always
    container_name: dbone
    ports:
      - "8080:3306"
    environment:
      - MYSQL_DATABASE=sakila
      - MYSQL_USER=user
      - MYSQL_PASSWORD=test
      - MYSQL_ROOT_PASSWORD=test
      - TZ=Africa/Lagos
    volumes:
      - ./docker/data/db/mysql/dump/2-create-schema.sql:/docker-entrypoint-initdb.d/2.sql
      - persistent_1:/var/lib/mysql
    command: ["--character-set-server=utf8mb4", "--collation-server=utf8mb4_general_ci", "--skip-character-set-client-handshake", "--default-authentication-plugin=caching_sha2_password"]
  dbtwo:
    image: mysql:latest
    restart: always
    container_name: dbtwo
    ports:
      - "8090:3306"
    environment:
      - MYSQL_DATABASE=mysql_json_db
      - MYSQL_USER=user
      - MYSQL_PASSWORD=test
      - MYSQL_ROOT_PASSWORD=test
      - TZ=Africa/Lagos
    volumes:
      - ./docker/data/db/mysql/dump/mysql_json_db.sql:/docker-entrypoint-initdb.d/1.sql
      - persistent_2:/var/lib/mysql
    command: ["--character-set-server=utf8mb4", "--collation-server=utf8mb4_general_ci", "--skip-character-set-client-handshake", "--default-authentication-plugin=caching_sha2_password"]
  phpmyadmin:
    image: phpmyadmin:latest
    restart: always
    container_name: phpmyadmin
    depends_on:
      - dbone
      - dbtwo
    ports:
      - "8070:80"
    environment:
      - MAX_EXECUTION_TIME=0
      - PMA_ARBITRARY=1
volumes:
  persistent_1:
  persistent_2:

4. 重启服务生效

执行命令重启服务:

docker-compose down
docker-compose up --build -d

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 20:57:04