无法将Docker Wordpress容器连接到主机上的MySQL

时间:2016-05-06 19:46:46

标签: mysql wordpress docker virtual-machine

我有一台我在Mac上旋转的Ubuntu虚拟机。在VM中我安装了MySQL和Docker,我正在尝试从Wordpress映像运行容器并连接到主机vm上的MySQL。 Wordpress图像文档说要使用:

$ docker run --name some-wordpress -e WORDPRESS_DB_HOST=10.1.2.3:3306 \ -e WORDPRESS_DB_USER=... -e WORDPRESS_DB_PASSWORD=... -d wordpress

我已经用分配给主机vm的IP地址和相应的用户,密码和数据库名称环境变量替换了。容器出现但稍后关闭,并且docker日志显示:

vagrant@docker-blogs:/vagrant$ docker logs je-wordpress 
WordPress not found in /var/www/html - copying now...
Complete! WordPress has been successfully copied to /var/www/html

Warning: mysqli::mysqli(): (HY000/2002): Connection refused in - on line 10

MySQL Connection Error: (2002) Connection refused

Warning: mysqli::mysqli(): (HY000/2002): Connection refused in - on line 10

MySQL Connection Error: (2002) Connection refused

这些重复几次然后终止。

这应该可行吗?如果是这样,我需要使用什么作为主机虚拟机的IP地址,我是否需要配置其他任何东西?

1 个答案:

答案 0 :(得分:1)

我假设您在该mysql上有默认设置。

您正尝试从DIFFERENT网络连接到您的mysql。默认情况下,这在mysql中是禁止的。

查找mysql的设置: grep bind-address /etc/mysql/my.cnf

grep skip-networking /etc/mysql/my.cnf

注释掉它们(#bind-address,...),或删除它们。

重启你的mysql服务

service mysql restart

允许用户从远程网络连接。连接到mysql并执行:

GRANT ALL ON database.* TO user@'xxx.xxx.xxx.xxx' IDENTIFIED BY 'PASSWORD';

更改您要连接的IP的数据库,用户,xxx.xxx.xxx.xxx,以及PASSWORD。

要启用IDontGiveADamn模式,只需执行

即可

GRANT ALL ON *.* TO root@'%' IDENTIFIED BY 'monkey';