安装好了mysql docker并且绑定了宿主机端口,宿主机没有使用标准端口,发现用mycli可以连接通过docker的ip进行连接,但是通过宿主机ip连不上。
测试发现,telnet宿主机端口是通的,在telnet时,docker logs -f {docker名}也可以看到日志有打印错误信息,但是使用mycli连接宿主机ip就一直报错(2003, "Can't connect to MySQL server on '192.168.5.4' ([Errno 111] Connection refused)"),而且docker没有打印任何日志。
经过网上各种搜索,试了各种方法都没有解决,最后偶然间发现直接的命令行中有两个-p参数,这才觉得不对劲,于是赶紧man mysql。才发现在使用mycli命令行连接并指定端口时写错了命令,指定端口应该是大写的P,而不是小写。
事实证明,你一不经意的错误就要花大量的时间来纠正,所以,做任何事前一定要先打好基础,不然就会像我一样,走一步补一课。