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

Docker Compose部署WordPress遭遇数据库连接错误求助

排查WordPress数据库连接错误的解决方案

1. 修复MySQL用户权限问题

你的配置中直接使用root作为WordPress的数据库用户,但MySQL默认的root账号仅允许**容器内部(localhost)**登录,WordPress容器处于独立网络节点,无法通过root远程连接数据库。

修正步骤:

  • 更新.env文件,创建专用的WordPress数据库用户:
MYSQL_ROOT_PASSWORD=root
MYSQL_USER=wp_user
MYSQL_PASSWORD=wp_pass
  • 调整docker-compose.yaml中db服务的环境变量引用,确保变量匹配正确:
environment:
  - MYSQL_DATABASE=wordpress
  - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
  - MYSQL_USER=${MYSQL_USER}
  - MYSQL_PASSWORD=${MYSQL_PASSWORD}

新创建的wp_user默认拥有%(任意主机)访问权限,允许跨容器连接。

2. 验证容器间网络连通性

进入WordPress容器,测试与MySQL容器的3306端口连通性:

# 进入wordpress容器
docker exec -it wordpress sh
# 安装网络测试工具(Alpine镜像默认无nc)
apk add netcat-openbsd
# 测试端口连通
nc -zv db 3306

若输出db (172.x.x.x:3306) open,说明网络正常;若失败,可重启docker网络或检查app-network配置(bridge模式默认无问题)。

3. 查看MySQL容器日志排查初始化异常

通过日志确认数据库和用户是否正确创建:

docker logs db

如果日志出现Access denied for user或Database not created类错误,需清理旧数据卷后重新构建容器(注意:会清空现有数据库数据):

# 停止并移除容器
docker-compose down
# 删除数据库数据卷
docker volume rm $(docker volume ls | grep your_project_name_dbdata | awk '{print $2}')
# 重新启动服务
docker-compose up -d

4. 检查WordPress自动生成的配置文件

官方WordPress镜像会根据环境变量生成wp-config.php,可进入容器验证配置参数:

docker exec -it wordpress cat /var/www/html/wp-config.php

确认以下参数与你的配置完全一致:

define( 'DB_HOST', 'db:3306' );
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wp_user' ); // 对应.env中设置的用户名
define( 'DB_PASSWORD', 'wp_pass' ); // 对应.env中设置的密码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 02:45:33