繁体   English   中英

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

[英]Can't connect Docker Wordpress container to MySQL on host

我有一个在 Mac 上启动的 Ubuntu VM。 在 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

这些重复几次然后它终止。

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

我假设你在那个 mysql 上有默认设置。

您正在尝试从不同的网络连接到您的 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';

更改数据库、用户、xxx.xxx.xxx.xxx 为您连接的 IP 和密码。

要启用 IDontGiveAdamn 模式,只需执行

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM