环境

我的服务器是在阿里云上面,操作系统为centos7,另外mysql使用docker容器技术来安装的,因为我之前安装了一个mysql镜像,并且用该镜像生成对应的MySQL容器(端口号为3306),这次我想要在生成一个新的MySQL容器(端口号为3307),但是发现在新docker容器中使用是可以的,但是在本地主机使用Navicat等管理软件连接的时候抱10060和10061错误。
在这里插入图片描述

解决方法

参考:https://www.jianshu.com/p/d3d037afd7a9
网上有很多解决方法,像上面贴的连接就是其中一个。但是我试了之后还是发现不行,后面看docker的log文件发现虽然新容器端口映射为3307,但是在容器内部还是以3306端口进行运行。
并且用telnet命令来ping端口号,从本地主机和阿里云服务器ping到容器内时,3306端口可以但是3307一直不行。
在这里插入图片描述

我的mysqld.cnf中的bind-address = 127.0.0.1被注释掉,同时也没有port属性。所以估计默认为3306端口了,后面我把bind-address去掉注释同时改为0.0.0.0,并且加上port=3307。再重启mysql容器就可以了。(具体参考上面连接,细节方面要注意一下,特别是端口号等问题,很多文章都没说)
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐