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

Docker环境下WordPress无法连接MySQL数据库求助(附配置代码)

WordPress容器无法连接MySQL的解决办法

核心问题修正

你的配置里有两个关键错误导致连接失败:

1. Docker Compose语法错误

MySQL服务的端口映射行缺少闭合引号,会导致Compose解析失败。
原错误代码:

- '3306:3306

修正后:

- '3306:3306'

2. WordPress数据库主机配置错误

在Docker容器环境中,localhost指向容器自身,而非MySQL容器。WordPress需要通过Docker Compose中定义的服务名mysql来访问数据库。
原错误配置:

define( 'DB_HOST', 'localhost' );

修正后:

define( 'DB_HOST', 'mysql' );

完整修正后的配置文件

Docker Compose文件(docker-compose.yml)

version: "3.9"
services:
  web:
    ports:
      - "80:80"
    build:
      context: ./code
    # 可选:确保web容器在mysql启动后再启动
    depends_on:
      - mysql
  mysql:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: 'testdb'
      MYSQL_USER: 'user'
      MYSQL_PASSWORD: 'password'
      MYSQL_ROOT_PASSWORD: 'password'
    ports:
      - '3306:3306'

WordPress配置文件(wp-config.php)

define( 'DB_NAME', 'testdb' );
/** Database username */
define( 'DB_USER', 'user' );
/** Database password */
define( 'DB_PASSWORD', 'password' );
/** Database hostname */
define( 'DB_HOST', 'mysql' );
/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );
/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );

操作步骤

  1. 保存修正后的两个文件
  2. 清理现有容器(如果已启动过):
docker-compose down
  1. 重新启动服务:
docker-compose up -d --build
  1. 等待1-2分钟让MySQL完成初始化,再访问http://localhost验证连接状态

排查补充

如果仍有问题,可通过日志定位原因:

# 查看WordPress容器日志
docker-compose logs web
# 查看MySQL容器日志
docker-compose logs mysql

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:50:48