具体的解决步骤如下,希望能帮助遇到同样问题的同学们:
找到并修改my.cnf文件。在不同的Linux系统下,my.cnf放在不同的位置。这里以Ubuntu Server做示例,其他系统请根据情况自行找到my.cnf的路径。一般只会存放在/etc/my.cnf或者/etc/mysql/my.cnf下。
首先用vim打开my.cnf:
vim /etc/mysql/my.cnf
看看是否有绑定本地回环地址的配置,如果有,注释掉下面这段文字:(在文字之前加上#号即可)
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