我正在尝试将worpdress站点迁移到docker容器以进行本地开发。
但是,每次我使用docker compose时,我都会不断得到这个信息:
MySQL连接错误:(1045)用户'root'@'172.22.0.3'的访问被拒绝
我已经仔细检查了密码,并通过db容器上的外壳验证了密码。
这是我的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
答案 0 :(得分:1)
我假设您正在使用来自docker hub的官方Wordpress image。您已指定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