本文章介绍MySQL远程连接丢失问题解决办法,连接丢失主要体现在连接时提示Lost connection to MySQL server at ‘reading initial communication packet’,system error: 0了,下面我们就看看因为此问题导致mysql连接丢失问题解决步骤,希望例子对各位会带来帮助呀.
具体的解决步骤如下:
找到并修改my.cnf文件,在不同的Linux系统下,my.cnf放在不同的位置,这里以Ubuntu Server做示例,其他系统请根据情况自行找到my.cnf的路径,一般只会存放在/etc/my.cnf或者/etc/mysql/my.cnf下.
首先用vim打开my.cnf:vim /etc/mysql/my.cnf //phpfensi.com
看看是否有绑定本地回环地址的配置,如果有,注释掉下面这段文字,在文字之前加上#号即可.
bind-address = 127.0.0.1
然后找到[mysqld]部分的参数,在配置后面建立一个新行,添加下面这个参数:
skip-name-resolve
保存文件并重启MySQL:/etc/init.d/mysql restart
这样就会发现,问题已经解决了,远程连接不会丢失了.
补充 mysql连接不原因:
1. 首先要排查网络问题和防火墙的问题.
这个是必须的,你要是连MySQL的服务器都连不上,那还访问什么?怎么检查呢?ping一下:
ping 192.168.0.11 ping 的通的话,再去检查一下 3306端口是不是被防火墙给挡掉了.
ping 192.168.0.11:3306 或者干脆把防火墙关掉,service iptables stop (Redhat ) 或 ufw disable(ubuntu)
这一步没问题的话,开始下一步.
2. 要排查有没有访问权限.
说到访问权限,MySQL分配用户的时候会指定一个host,比如我的 host 指定为 192.168.0.5,那么这个账号就只能 5 这一台机器访问,其他的机器用这个账号访问会提示没有权限,host 指定为 % 则表示允许所有的机器访问.
一般来说出于安全方面的考虑,遵循最小权限原则,权限的问题就不多讲了,不会的自己查手册,确定了权限没问题的话进行下一步.
3. 要排查MySQL的配置
检查mysql的配置文件,Linux下MySQL的配置文件叫 my.cnf windows下的叫 my.ini,检查这个配置项:–bind-address=IP.