【发布时间】:2017-10-12 08:51:50
【问题描述】:
我遇到了 mysql 5.7 容器拒绝访问 wordpress 容器的问题。我正在使用 docker-compose,我在 Mac OSX 上运行 docker。 Docker 应该是可用的最新版本。
这是我的 docker-compose.yml
version: '2'
services:
wordpress:
depends_on:
- db
image: wordpress:latest
container_name: wordpress
ports:
- "8000:80"
- "443:443"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: blog
WORDPRESS_DB_USER: blog_admin
WORDPRESS_DB_PASSWORD: userpasswd
networks:
- wordpress_net
db:
image: mysql:5.7
container_name: db
ports:
- "3306:3306"
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: rootpasswd
MYSQL_DATABASE: blog
MYSQL_USER: blog_admin
MYSQL_PASSWORD: userpasswd
networks:
- wordpress_net
networks:
wordpress_net:
volumes:
db_data:
来自 db 容器的日志是:
2017-05-12T23:28:06.138429Z 321 [Note] Access denied for user 'blog_admin'@'172.19.0.3' (using password: YES)
来自 wordpress 容器的日志是:
MySQL Connection Error: (1045) Access denied for user 'blog_admin'@'172.19.0.3' (using password: YES)
Warning: mysqli::mysqli(): (HY000/1045): Access denied for user 'blog_admin'@'172.19.0.3' (using password: YES) in - on line 22
码头工人ps:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b02f0146fe7 wordpress:latest "docker-entrypoint..." 25 minutes ago Up 26 seconds 0.0.0.0:443->443/tcp, 0.0.0.0:8000->80/tcp wordpress
5d932ed6c269 mysql:5.7 "docker-entrypoint..." 25 minutes ago Up 25 minutes 0.0.0.0:3306->3306/tcp db
我尝试了什么:
- 正在重新启动 docker 主机。
- docker-compose rm -v 然后 docker-compose up -d 再次。
- 在 wordpress 容器之外使用这些用户凭据和 root 凭据登录。
- 删除 docker 映像并从头开始重新拉取它们。
- 在
WORDPRESS_DB_HOST, WORDPRESS_DB_USER中使用根凭据
当我连接到 db 容器时,我可以看到 db 的所有环境变量。 Wordpress 容器不断自我重启。我看到一个关于堆栈溢出的答案,建议刷新权限并设置新用户帐户,但我想知道我是否做错了可能导致此问题再次出现在其他机器上。
【问题讨论】:
-
你能用phpmyadmin来检查你的root_user的“Host”是否设置为“%”吗?也在您的 docker-compose 中尝试在您的 wordpress-service 中使用“-links:-db”
-
@ad_on_is 您好,我的问题现在已解决。是的,我尝试将 phpmyadmin 添加到 docker-compose.yml 但它不起作用,因为即使以 root 身份我也无法连接到 mysql。即使我将 root 密码留空,它也会拒绝访问。所以甚至 phpmyadmin 都无法连接到它。尽管如此,我还是通过接受的答案中描述的方法修复了它。
标签: mysql wordpress docker docker-compose