我有一个问题,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
docker 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
我尝试了什么:
WORDPRESS_DB_HOST, WORDPRESS_DB_USER
当我连接到db容器时,我可以看到db的所有env变量。 Wordpress容器不断重启自己。我看到堆栈溢出的一个答案,建议刷新权限和设置新用户帐户,但我想知道我是否做错了可能导致此问题再次出现在其他机器上。
答案 0 :(得分:1)
更改
ActionListener
要
WORDPRESS_DB_USER: blog_admin
WORDPRESS_DB_PASSWORD: userpasswd
然后
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: rootpasswd
您的用户名Blog_admin无权访问create database
答案 1 :(得分:1)
我做了什么:
docker-compose rm -v
对我不起作用,因为我总是使用docker-compose down
来关闭容器。我认为这是问题的根源。我用docker-compose.yml删除了文件夹并创建了一个新文件夹。然后我创建了compose文件,只需配置mysql容器启动它,并尝试以root身份连接到mysql服务器。它工作,然后我不得不用docker stop containerID
停止容器,然后我运行docker-compose rm -v
(由于某种原因,rm -v
仅在您停止容器时有效。不是在您使用{{ 1}这导致db状态持续存在,因为我使用了db容器的容量)并使用wordpress容器配置完成了yml文件我最终得到了这样的结果:
docker-compose down
注意:我之前遇到的问题不仅是从wordpress容器连接到数据库,还有自己的db容器。我上面描述的方法帮助我解决了这个问题。