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

Docker部署Laravel项目:phpMyAdmin报"No address associated with hostname"错误求助

解决phpMyAdmin无法连接MySQL容器的问题

我一眼就瞅出问题所在了——phpmyadmin服务的环境变量格式写错了!你在定义PMA_HOST这类变量时用了冒号:,但Docker Compose的environment配置里,键值对得用等号=分隔,或者改用标准的YAML映射写法,不然Docker没法正确识别这些变量。

问题根源

错误提示里的php_network_getaddresses: getaddrinfo failed,本质是phpMyAdmin找不到database这个主机对应的地址。之所以会这样,是因为你用冒号代替了等号,导致PMA_HOST这个关键变量根本没被正确设置,phpMyAdmin自然不知道该连哪个数据库容器。

修正后的phpmyadmin服务配置

下面给你两种可行的修正写法,选你顺手的就行:

写法一(数组形式,用等号分隔键值)

#PHPMyAdmin Service
phpmyadmin:
  container_name: phpmyadmin
  image: phpmyadmin/phpmyadmin
  ports:
    - "8992:80"
  depends_on:
    - database
  environment:
    - PMA_HOST=database
    - MYSQL_USER=phpmyadmin
    - MYSQL_PASSWORD=phpmyadmin
    - MYSQL_ROOT_PASSWORD=123456
    - UPLOAD_LIMIT=3000000000

写法二(YAML映射格式,更直观的键值对)

#PHPMyAdmin Service
phpmyadmin:
  container_name: phpmyadmin
  image: phpmyadmin/phpmyadmin
  ports:
    - "8992:80"
  depends_on:
    - database
  environment:
    PMA_HOST: database
    MYSQL_USER: phpmyadmin
    MYSQL_PASSWORD: phpmyadmin
    MYSQL_ROOT_PASSWORD: 123456
    UPLOAD_LIMIT: 3000000000

额外小提醒

虽然depends_on能保证phpmyadmin在database容器之后启动,但没法确保MySQL服务已经完全初始化完成。如果偶尔还是碰到连接超时的情况,可以给phpmyadmin加个restart: unless-stopped的重启策略,或者用脚本等待数据库就绪——不过大部分情况下,修正环境变量格式就能解决你当前的问题了。

内容的提问来源于stack exchange,提问作者Bob.B

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 19:52:58