[英]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.