无法将 Docker Wordpress 容器连接到主机上的 MySQL
Can't connect Docker Wordpress container to MySQL on host
我有一个 Ubuntu 虚拟机,我在 Mac 上启动了它。在 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
我已经替换了分配给主机虚拟机的 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';
我有一个 Ubuntu 虚拟机,我在 Mac 上启动了它。在 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
我已经替换了分配给主机虚拟机的 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';