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

Docker Compose中phpMyAdmin连接失败问题求助

解决phpMyAdmin无法连接Docker Compose中MariaDB的问题

这个#2002错误的核心原因很明确:在Docker Compose的容器网络环境里,phpMyAdmin默认尝试连接localhost,但这个地址在容器内部指向的是phpMyAdmin自己,而不是你的MariaDB容器。Docker Compose会自动为所有服务创建一个内部DNS,服务之间需要通过服务名称来互相访问。

具体修复步骤

1. 更新Docker Compose配置

修改你的docker-compose.yml,给pma服务添加环境变量,指定数据库服务的主机名:

version: '3'
services:
  db:
    image: mariadb:latest
    container_name: mariadb
    restart: always
    volumes:
      - ./mysql/initdb/:/docker-entrypoint-initdb.d
      - ./mysql/data/:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=root-pwd
      - MYSQL_DATABASE=appdb
      - MYSQL_USER=appuser
      - MYSQL_PASSWORD=user-pwd
  php:
    image: php:fpm-alpine
    container_name: php
    restart: always
    volumes:
      - ./www/:/var/www/html
    expose:
      - "9000"
  nginx:
    image: nginx:alpine
    container_name: nginx
    restart: always
    volumes:
      - ./nginx/conf/nginx.conf:/etc/nginx/conf/nginx.conf:ro
      - ./nginx/conf.d:/etc/nginx/conf.d:ro
      - ./www:/var/www/html
    ports:
      - "80:80"
  pma:
    image: phpmyadmin/phpmyadmin
    container_name: phpmyadmin
    restart: always
    ports:
      - "8080:80"
    # 添加以下环境变量
    environment:
      - PMA_HOST=db
      - PMA_PORT=3306

这里的PMA_HOST=db是关键——db是你MariaDB服务的名称,Docker内部DNS会自动解析这个名称到对应的容器IP。

2. 重启服务使配置生效

在终端里执行以下命令,先停止现有服务再重新启动:

docker-compose down
docker-compose up -d

额外排查建议

  • 验证数据库服务状态:如果还是无法连接,先检查MariaDB容器是否正常启动:
    docker-compose logs db
    
    查看日志里有没有初始化错误,比如密码设置问题或者数据卷权限问题。
  • 登录账号一致性:登录phpMyAdmin时,用普通用户的话要确保输入的账号密码和db服务里的MYSQL_USER、MYSQL_PASSWORD一致;用root用户的话,密码是MYSQL_ROOT_PASSWORD的值。
  • 检查网络连通性:可以进入phpMyAdmin容器内部,测试和db的连通性:
    docker exec -it phpmyadmin ping db
    
    如果能ping通,说明网络没问题,问题可能出在数据库权限或者配置上。
  • 避免不必要的端口暴露:除非你需要从宿主机直接连接MariaDB,否则不要给db服务添加ports: - "3306:3306",这样会增加安全风险。

内容的提问来源于stack exchange,提问作者P. Kein

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:51:28