解决 Docker Compose 中 WordPress 数据库连接错误的终极指南
2024-03-01 02:12:53
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_DATABASE
: 与DB_NAME
设置相匹配。MYSQL_USER
: 与DB_USER
设置相匹配。MYSQL_PASSWORD
: 与DB_PASSWORD
设置相匹配。
此外,请确保 my-awesome-database
和 my-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-database
和 my-awesome-wordpress
服务都包含在 networks
部分中,并且它们连接到同一个网络。
3. 如何重置数据库密码?
使用 docker exec
命令启动一个容器外壳,然后使用以下命令重置密码:
mysql -u root -p
SET PASSWORD FOR 'wordpress'@'%' = PASSWORD('new_password');
4. 如何解决端口映射问题?
检查 Docker Compose 配置中端口映射部分,确保主机上的端口正确映射到容器的 3306 端口。您还可以使用 docker port
命令验证映射。
5. 如果我仍然遇到错误怎么办?
如果您已尝试本文中概述的所有解决方案,但仍然遇到问题,请提供错误消息以及您已尝试过的步骤的详细信息,以寻求进一步的帮助。