wordpress - Wordpress Docker 容器无法连接到数据库容器
问题描述
我正在尝试将 worpdress 站点迁移到 docker 容器以进行本地开发。
但是,每次我使用 docker compose 时,我都会不断收到以下信息:
MySQL 连接错误:(1045) 用户'root'@'172.22.0.3' 的访问被拒绝
我已经仔细检查了密码并通过 db 容器上的 shell 对其进行了验证。
这是我的docker-compose
文件:
services: # configuring each container
db: # name of our mysql container
image: mysql:5.7 # which image to pull, in this case specifying v. 5.7
volumes: # data to map to the container
- ./data:/docker-entrypoint-initdb.d # where to find our data - we'll talk more about this
restart: always # always restart the container after reboot
environment: # environment variables -- mysql options in this case
MYSQL_ROOT_PASSWORD: *****
MYSQL_DATABASE: **_***
MYSQL_USER: *****
MYSQL_PASSWORD: *****
....
wordpress:
depends_on: # container dependencies that need to be running first
- db
image: wordpress:latest # image used by our container
ports:
- "8080:80" # setting our ports for networking
restart: always
environment:
WORDPRESS_DB_HOST: db:3306 # default mysql port
WORDPRESS_DB_PASSWORD: **** # matches $MYSQL_PASSWORD
volumes: # this is where we tell Docker what to pay attention to
- ./wp-content/themes/chronus:/var/www/html/wp-content/themes/chronus # mapping our custom theme to the container
- ./wp-content/plugins:/var/www/html/wp-content/plugins # map our plugins to the container
- ./wp-content/uploads:/var/www/html/wp-content/uploads # map our uploads to the container
解决方案
我假设您使用的是来自 docker hub的官方Wordpress 图像。您已指定WORDPRESS_DB_PASSWORD
标志,但未指定WORDPRESS_DB_USER
. 这意味着,wordpress 插件默认为root
.
但是,根据您的评论,您在此处输入了某个任意用户(不是 root 用户)的密码。
在您的撰写文件中修改 wordpress 容器的环境变量,如下所示,它应该可以工作:
environment:
WORDPRESS_DB_HOST: db:3306 # default mysql port
WORDPRESS_DB_PASSWORD: **** # matches $MYSQL_PASSWORD
WORDPRESS_DB_USER: **** # matches $MYSQL_USER
推荐阅读
- function - 让绑定到一个函数
- php - PHP Spintax:如何使用 REGEX 排除 CSS 代码
- reactjs - 前端开发人员步骤
- browser - Index DB,哪个浏览器有多少内存容量?
- python - 为什么我在 python 列表中出现演示错误?
- python-3.x - 在 Python 中为某个日期生成 UNIX 时间
- java - 使用opencsv读取包含'\'字符串和'\0'附件的CSV文件?
- javascript - 为什么有些事件处理程序是由 dispatchEvent 触发的,而有些不是?
- node.js - 在 heroCard botframework (nodejs) 中提及用户
- python - luigi 如何处理任务失败?