返回

解决 Docker Compose 中 WordPress 数据库连接错误的终极指南

mysql

Docker Compose 中 WordPress 数据库连接错误故障排除指南

简介

使用 Docker Compose 部署 WordPress 时,遇到 "Error establishing a database connection" 错误是一件令人沮丧的事情。本文旨在逐步指导您解决此问题,并确保您的 WordPress 应用程序与数据库无缝连接。

1. 检查 WordPress 配置

首先,让我们检查您的 WordPress 配置。打开 wp-config.php 文件并仔细检查以下设置:

  • DB_NAME 确保该值与您 Docker Compose 配置中指定的数据库名称相匹配。
  • DB_USER 验证数据库用户名是否正确。
  • DB_PASSWORD 输入正确的数据库密码。
  • DB_HOST 设置该值应为 my-awesome-database:3306,其中 my-awesome-database 是您的数据库容器名称。

2. 审查 Docker Compose 配置

接下来,检查您的 Docker Compose 配置。确保 my-awesome-database 服务配置正确:

  • image 该值应指定您要使用的数据库映像。
  • MYSQL_DATABASEDB_NAME 设置相匹配。
  • MYSQL_USERDB_USER 设置相匹配。
  • MYSQL_PASSWORDDB_PASSWORD 设置相匹配。

此外,请确保 my-awesome-databasemy-awesome-wordpress 服务连接到同一个网络。

3. 重新构建并重新启动容器

在更新 wp-config.php 或 Docker Compose 配置后,您需要重新构建 WordPress 镜像并重新启动容器:

docker-compose down
docker-compose build
docker-compose up -d

4. 测试数据库连接

重新启动容器后,尝试使用 mysql 命令行客户端连接到数据库:

docker exec -it my-awesome-database mysql -u wordpress -pwordpress

如果连接成功,您将被提示输入密码。输入密码并确认您能够访问数据库。

常见错误

解决此错误时,以下是一些常见错误:

  • 不正确的数据库凭据: 确保 wp-config.php 和 Docker Compose 中的凭据匹配。
  • 容器不在同一个网络中: 检查 docker-compose.yml 中的 networks 部分,确保所有容器都连接到同一个网络。
  • 数据库未启动: 使用 docker ps 命令检查 my-awesome-database 容器是否正在运行。
  • 端口映射不正确: 确保主机上的端口正确映射到容器的 3306 端口。

结论

通过遵循本文中概述的步骤,您可以解决 WordPress 中的 "Error establishing a database connection" 错误,并确保您的应用程序与数据库顺利连接。如果您仍然遇到问题,请尝试本文中提供的其他解决方案,或在评论部分寻求进一步的帮助。

5 个常见问题解答

1. 如何检查数据库凭据是否正确?
使用 mysql 命令行客户端尝试连接到数据库。如果连接失败,请检查凭据并确保它们与 wp-config.php 和 Docker Compose 中的凭据匹配。

2. 如何确保容器连接到同一个网络?
在 Docker Compose 配置中,确保 my-awesome-databasemy-awesome-wordpress 服务都包含在 networks 部分中,并且它们连接到同一个网络。

3. 如何重置数据库密码?
使用 docker exec 命令启动一个容器外壳,然后使用以下命令重置密码:

mysql -u root -p
SET PASSWORD FOR 'wordpress'@'%' = PASSWORD('new_password');

4. 如何解决端口映射问题?
检查 Docker Compose 配置中端口映射部分,确保主机上的端口正确映射到容器的 3306 端口。您还可以使用 docker port 命令验证映射。

5. 如果我仍然遇到错误怎么办?
如果您已尝试本文中概述的所有解决方案,但仍然遇到问题,请提供错误消息以及您已尝试过的步骤的详细信息,以寻求进一步的帮助。