现在的位置: 首页 > 综合 > 正文

解决Python访问mysql数据库时候的“MySQL server has gone away”

2013年07月18日 ⁄ 综合 ⁄ 共 737字 ⁄ 字号 评论关闭

今天进行cdn日志分析程序执行了近13个小时-_-!!不是我程序慢,实在是文件太大了17G的压缩文件,磁盘是sata盘,主机是2003年的DL320服务器。。。。。。
程序数据分析完毕后居然抛异常报错如下:
_mysql_exceptions.OperationalError      
(2006, 'MySQL server has gone away')
    <traceback object at 0x2aaaaad16d88>2010-07-12 22:43:40
检查mysql服务器设置发现,超时时间为8小时。但是我的程序执行了13个小时。。。。。。。杯具了。。。
mysql> show variables like '%wait_timeout%' ;
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| innodb_lock_wait_timeout | 50    | 
| table_lock_wait_timeout  | 50    | 
| wait_timeout             | 28800 | 
+--------------------------+-------+
3 rows in set (0.00 sec)
唉,原来是程序与mysql建立链接后空闲时间太长,被mysql关闭掉了。

之前是程序一启动,打开与数据库的链接,每分析完一个产品的数据,将结果插入到数据库中。由于我的这个产品文件太多了,导致链接空闲时间太长,超过了最大超时时间。。。。。
修改了一下程序,当日志分析完毕后再打开与mysql数据库的链接,且当使用完毕后关闭链接。

抱歉!评论已关闭.