内容目录
环境搭建成功后,
index.php
文件代码如下:$servername = "127.0.0.1:3007"; $username = "root"; $password = "123456"; //创建连接 $conn = new mysqli($servername, $username, $password); //检测连接 if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } echo "Connected successfully";
- 运行提示如下错误:
Warning: mysqli::__construct(): (HY000/2002): Connection refused in /www/index.php on line 6 修改代码如下:
$servername = "localhost:3007";
运行依然提示错误:
Warning: mysqli::__construct(): (HY000/2002): Connection refused in /www/index.php on line 6
这一看好吧,mysql连接的地址有问题,参考之前Nginx关联PHP容器时修改的配置,改成MySQL容器的ip地址,修改代码如下:
$servername = "172.17.0.4"; //查看MySQL容器的ip地址 docker inspect --format='{{.NetworkSettings.IPAddress}}' myMysql
或者修改代码如下:
$servername = "myMysql";//NOTICE:这里的myMysql是指连接的MySQL容器的别名
- 运行成功,问题解决!
在PHP连接Docker运行中的MySQL容器时,不能用localhost或者127.0.0.1来连接,因为每个docker运行容器的localhost 和127.0.0.1都是当前容器,而不是MySQL容器,需要修改成容器 IP,或者是mysql容器名称
Notice:之前创建MySQL容器,没有对MySQL容器与PHP容器进行关联,即使代码里面连接MySQL的主机名称修改成容器IP/容器名称也会执行错误。仍然报以上错误!
0 条评论
撰写评论