当前位置:首页> 编程笔记> MySql
关键字
文章内容
数据库错误:MySQL server has gone away解决
 
 
修改时间:[2012/07/03 16:41]    阅读次数:[1584]    发表者:[沩筱]
 

公司的水源项目监测数据一直正常,但是今天出问题了。

情况是演示的终端节点从昨天晚上6点就被带走了,今天2点才重新开启。

但是正常开启后,傻眼了,网页上没有数据,数据库里没有数据。

最后对每一个过程进行检查,发现日志中最后一句是MySQL server has gone away。

把提供数据转发的软件重新启动后,发现完全能够从数据库取得下发命令。

问题解决了,不过还得针对该问题进行解决。

于是在网上查询后,看到这样一句话,大概意思是说:MYSQL默认持续连接时间是8个小时,如果8小时内没有对数据库进行操作,该连接将被释放,再次操作数据库就会出现该错误。

知道出错原因后,就得解决,方法有下面两个。

方法一:设置持续链接时间更长一点。方法如下:

在my.ini文件中添加或者修改以下两个变量:

wait_timeout=2880000 
interactive_timeout = 2880000

或是

$sql = "set interactive_timeout=24*3600"; 
mysql_real_query($sql)

方法二:

在数据库执行失败后,强制关闭当前链接,重新创建一个全新的数据库连接,方法如下:

mysql_close($link);
$link=mysql_connect('$host','$user','$pwd');
mysql_select_db('$dbname',$link);

或是

mysql_ping($link);

最终决定用方法2解决该问题。