问题
最近在容器内搭建的服务在连接Mysql时出现了以下错误:
SQLSTATE[HY000] [2002] Connection refused
SQLSTATE[HY000] [2002] php_network_getaddresses
解决
根据错误分析是因为数据库没有连接造成的,经过找资料才明白容器内并不能直接连接宿主机的IP,而是需要连接容器与宿主机之前的桥地址,也就是建立时的Docker0地址,所以解决方法也就有了:
1.使用ifconfig查看Docker的宿主机IP地址,Docker0为与宿主机通信网上,IP可以用于容器内向宿主机进行连接。
2.宿主机的IP地址,针对于该库权限需要设置为任意地址访问也就是%,因为默认是只允许127.0.0.1访问,不修改该配置,容器也是无法连接的。