容器中连接宿主机MySQL,根据宿主机系统的不同,操作方式也不同. Linux: 在宿主机下执行ifconfig,查询到docker0网卡的ip,即可在容器内部连接 Windows/Mac: 系统环境可能影响使用方式,以下方式可分别尝试: 在容器内ping 宿主机内网IP 在容器内ping host.docker.internal 哪个可以ping通,就使用哪个作为MySQL的主机地址. 有些Windows系统可能有IP能ping通但连不上,host.docker.internal ping不通的情况,这种情况可以在php容器中,修改/etc/hosts文件,将宿主机ip和host.docker.internal做一个映射试下,不过此方式每次重启容器都需要重新修改. MySQL默认禁止外部网络访问,因此需要将宿主机中的MySQL中设置允许外网访问,设置时需注意自己的MySQL版本,5.x和8.x有细微差别,以下内容作为参考 运行宿主机Mysql命令行 mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; mysql>flush privileges; // 其中各字符的含义: // *.* 对任意数据库任意表有效 // "root" "123456" 是数据库用户名和密码 // '%' 允许访问数据库的IP地址,%意思是任意IP,也可以指定IP // flush privileges 刷新权限信息