浙江省高等学校教师教育理论培训

微信搜索“毛凌志岗前心得”小程序

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

(2006, 'MySQL server has gone away') 错误解决 - dba007的空间 - 51CTO技术博客

(2006, 'MySQL server has gone away') 错误解决

2012-02-24 10:30:14

 在使用 Python + MySQLdb 部署项目的时候,执行计划任务报错

  OperationalError (2006, 'MySQL server has gone away')
 
 
解决办法1: 原因是由于长时间的执行批量的MYSQL语句造成,修改/etc/my.cnf
在[mysqld]段落加入wait_timeout=90000 示例文件内容如下:
  [mysqld]
  datadir=/var/lib/mysql
  socket=/var/lib/mysql/mysql.sock
  # Default to using old password format for compatibility with mysql 3.x
  # clients (those using the mysqlclient10 compatibility package).
  old_passwords=1
  # 修正 OperationalError: (2006, 'MySQL server has gone away') 错误
  wait_timeout=100000
      
  其他省略.......
然后 重启mysql服务,再次访问问题页面,没有再出现如上问题,问题得到暂时解决
 
 
解决办法2: 修改数据库连接代码 使用mysql ping来检查连接,实现超时自动重新连接
  #/usr/bin/env python
  import MySQLdb
  con=MySQLdb.Connect( host="foobar.com",
                       port=3306,
                       user="loginname",
                       passwd="loginpassword",
                       db="foobar")
  con.ping(True)
  cur=con.cursor()
推荐使用第2种解决方法,从代码彻底解决!
posted on 2012-06-03 17:05  lexus  阅读(1154)  评论(0编辑  收藏  举报