天天看点

mysql has gone away问题解决

今天下午,在不知道发生了什么的情况下这个问题又发生了。

网上去百度解决办法,首先说因为数据传输量太大,我的菜鸟服务器根本就没用数据,但是 我还是改了,

打开my.ini (window下),修改或者添加wait_timeout=2880000    interactive_timeout = 2880000这两条,然后在mysqld下添加 

max_allowed_packet = 10M

果然不出意料,没效果。

然后我去看看我数据库连接,访问localhost/phpmyadmin ,显示无法访问此网站。      
开始检查mysql服务,然后发现wampmysql64是启动的,通过cmd尝试登录,      
失败,错误ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0      
看起来是是我mysql服务的问题,网上去百度这个问题,据说是因为my.ini里面有bind_adress设置错误,造成的,      
注释掉这个句话,加上 skip-name-resolve在mysqld下即能解决,我找了一下文件,发现并没有bing-adress,继续按他说的改,      
然后重启,发现还是无法登录,这时候突然想到,是不是localhost的问题,我找到了system32下的hosts文件,发现有127.0.0.1  localhost的解析,      
看来不是这个问题,但是还是去ping localhost, 发现返回的是::1;这肯定不是正确解析的地址,继续百度,大佬说的ip6协议自动转换的锅,卸载就好了,      
但是window10并不能去卸载,大佬又说,去注册表改ip6,具体办法   打开注册表,找到键 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcpip6\Parameters
,添加类型为DWORD 名字为 DisabledComponents 的项(已经有了的不用添加直接改值)。然后修改值为 20,值类型为16进制       
保存,然后重启电脑。      
按步骤来,等10分钟老爷机启动,打开localhost,发现还是没有用,彻底懵了,然后猜一下,用127.0.0.1/phpmyadmin连接试试,      
咦!有动静,界面出来了,输入账号密码,127.0.0.1用户不能用root账户登录,暂停一分钟,我服务器上是可以用这个登录的,嗯!      
去服务器上把user表相关的copy下来,放到本地data/mysql里面,这下能进数据库了,但是我的yii还是报错,pdo错误,      
去main-local把localhost改成127.0.0.1;还是报错。有点晕。      
这时候想一下,会不会是数据库的锅,我cmd也连接不上,      
重装!!!!!!      
我用的wamp小白集成环境,导出来数据表,卸载wamp,重新安装,localhost还是连不上,但是我设置的其他虚拟路径能解析。      
连上数据库,导表进去,结果发现导出的数据表残缺!!!!      
还好有版本Yii migrate的习惯,重新用yii建表,大功告成。      
但是,我的localhost还是有问题。也算是解决了gone away的问题。