最近在ubuntu16中安装了一个mysql数据库,配置了远程访问,最后结果并不理想,虚拟机中可以正常访问,但是使用windows的navicat软件访问就报错,错误信息如下
Lost connection to MySQL server at ‘reading initial communication packet', system error: 0
很明显这是连接初始化阶段就丢失了连接的错误。google大多数是说的注释掉配置文件中 bind-address = 127.0.0.1 这一句,这一句当然我已经
注释掉了,不注释掉是一定不能远程连接的,解决方案如下
在[mysqld]配置下添加一行 skip-name-resolve ,其实问题很简单,都是MySQL的配置文件默认没有为远程连接配置好,只需要更改下MySQL
的配置文件即可,不同环境和不同情况下解决方案也许会有些诧异,一下方案希望能解决你的问题
第一步: 打开my.cnf,一般会存放在/etc/my.cnf或者/etc/mysql/my.cnf下
第二步: vim /etc/mysql/my.cnf 找到文件中的bind-address = 127.0.0.1前面加上一个#号注释掉
第三步: 然后找到[mysqld]部分的参数,在配置后面建立一个新行,添加下面这个参数:
skip-name-resolve
第四步:重启mysql /etc/init.d/mysql restart
这样就会发现,问题已经解决了!远程连接不会丢失了。