Mysql 2013错误(Lost connection to MySQL server )解决经验
问题
大三开始上数据库这门课,然而为了安装mysql这个破软件在windows上就花了我不少时间,好不容易装上之后,在某一天准备登录时突然无法登陆,并且mysql client闪退,在cmd里尝试登录后出现以下信息:
- Lost connection to MySQL server at ‘reading initial communication packet’, system error: 0
上网查了不少博客,无非就是以下几种方法:
1.在my.ini中添加skip-name-resolve
2.在hosts文件里添加 127.0.0.1 localhosts 映射
3.重启mysql服务(将其属性改为本地登录)
4.进入mysql修改root权限(这是我最想吐槽的一种方法,我特么都进不去,还要你教这种方法?)
5.彻底卸载mysql,重新安装(且把服务名换成mysql666什么的)
6.修改my.ini里面timeout等参数
以上方法我尝试了无数遍,mysql解压版,安装版也是装了又装,但是都没用。当然如果你能用上面的方法解决,那是再好不过了。如果不能,请往下看。俗话说,百度不行求谷歌,我于是google了一下,但是基本解决方案也差不多,但是一个评论突然把我带离了深渊。具体链接已经无从考证。
请在你的电脑中尝试以下命令
1: mysql -u root -p
2 : mysql -u root -p -h::1
3 : mysql -u root -p -h127.0.0.1
如果,你的1,2都报了与标题相同的错误,而3确进去了,那么以下内容对你可能有所帮助
解决方法
注:解决方法中1和2不知道哪个起了效果,因为我都弄了。只好请大家自己试试了。
2018/3/15更新:开启iis似乎与本问题无关,而且之后有影响tomcat的风险。 故慎用
1.在浏览器里输入127.0.0.1,倘若没有显示页面,那么请开启IIS.
详见 http://www.win8.net/jiaocheng/20150723/1254.html [Win8.1开启IIS服务器的方法]
开启后测试一下,确保输入127.0.0.1和localhost都能进入到微软IIS的页面。
2.在cmd里面ping一下localhost
看看红色部分是不是显示的一个【::1】在传输数据。这是因为你的电脑优先使用了ipv6来解析localhost。只有用ipv4的时候才会解析到127.0.0.1上去。
关于这个网上说把ipv6协议卸载就行了,然而不知道为什么我看了看我的网络,根本没有装ipv6什么的。因此这里提供另一种方法,改变ipv4和ipv6的优先级:
详见
http://blog.****.net/ambertian/article/details/70238020
虽然这位大哥不小心把自己的脸拍了出来,但是方法是很有效的。
此时再次在cmd中ping localhost,应该就是127.0.0.1在传输了。
此时,打开mysql应该就通畅无阻了
至此,问题解决.