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

如何从同一服务器上的WordPress容器访问运行在Docker中的数据库

故障原因与解决方案

核心问题排查

  • 主机名配置错误:你当前在wp-config.php中填写的DB_HOST为mysql:3306,但你的MySQL容器实际名称为my_mysql,Docker默认使用容器名称作为同网络下的域名解析地址,二者不匹配会导致连接失败。
  • 网络连通性异常:你运行的MySQL容器没有配置端口映射(端口列仅显示容器内部端口,没有映射到宿主机端口),需要根据WordPress的运行环境(是否为Docker容器)配置网络规则。
  • 数据库权限/存在性问题:需确认MySQL容器内已创建wordpress数据库,且root用户配置了允许外部访问的权限。

分场景解决方案

场景1:WordPress也运行在Docker容器中

  • 执行以下命令创建公共Docker网络(已创建可跳过):
    docker network create wp-network
  • 将MySQL容器加入公共网络:
    docker network connect wp-network my_mysql
  • 启动WordPress容器时添加参数--network wp-network加入同一网络
  • 修改wp-config.php中DB_HOST配置为:
    define( 'DB_HOST', 'my_mysql:3306' );

场景2:WordPress直接运行在宿主机本地

  • 重新启动MySQL容器,添加端口映射参数:
    docker run -d --name my_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=你设置的root密码 mysql:5.7
  • 修改wp-config.php中DB_HOST配置为:
    define( 'DB_HOST', '127.0.0.1:3306' );

额外校验步骤

如果修改后仍报错,执行以下操作确认配置:

  • 进入MySQL容器终端:
    docker exec -it my_mysql mysql -uroot -p
  • 输入root密码进入MySQL命令行后,执行show databases;确认返回结果包含wordpress库,不存在则执行create database wordpress;创建。
  • 执行权限配置命令允许root远程访问:
    grant all privileges on wordpress.* to 'root'@'%' identified by '你的root密码'; flush privileges;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:45:04