python 操作数据库 OperationalError: (2006, 'MySQL server has gone away') 解决方法
2013-09-02 19:16
861 查看
用python连接mysql数据库时有时会提示OperationalError: (2006, 'MySQL server has gone away')的错误,其原因主要是python与数据库的连接失败了,失败原因有多种,可能是提前关闭了连接,也有可能是由于超时连接而失败。最简单的方法就是多连几次数据库。
class DB:
conn = None
cursor = None
def connect(self):
self.conn = MySQLdb.connect (host = global_srcDB_Host,
user = global_srcDB_User,
passwd = global_srcDB_PWD,
db = global_srcDB_DB)
def execute(self, sql):
try:
cursor = self.conn.cursor()
cursor.execute(sql)
except (AttributeError, MySQLdb.OperationalError):
self.connect()
cursor = self.conn.cursor()
cursor.execute(sql)
return cursor
def close(self):
if(self.cursor):
self.cursor.close()
self.conn.commit()
self.conn.close()
使用如下:
db = DB()
cursor = db.execute (sql)
db.close()
至此,问题解决。
只要保证每次操作数据库之前连接数据库就可以。
class DB:
conn = None
cursor = None
def connect(self):
self.conn = MySQLdb.connect (host = global_srcDB_Host,
user = global_srcDB_User,
passwd = global_srcDB_PWD,
db = global_srcDB_DB)
def execute(self, sql):
try:
cursor = self.conn.cursor()
cursor.execute(sql)
except (AttributeError, MySQLdb.OperationalError):
self.connect()
cursor = self.conn.cursor()
cursor.execute(sql)
return cursor
def close(self):
if(self.cursor):
self.cursor.close()
self.conn.commit()
self.conn.close()
使用如下:
db = DB()
cursor = db.execute (sql)
db.close()
至此,问题解决。
只要保证每次操作数据库之前连接数据库就可以。
相关文章推荐
- SQLyog恢复数据库报错解决方法【Error Code: 2006 - MySQL server has gone away】
- SQLyog恢复数据库报错解决方法【Error Code: 2006 - MySQL server has gone away】
- 数据库导入过大 报错 ERROR 2006 (HY000) at line xx: MySQL server has gone away 解决方法
- SQLyog恢复数据库报错解决方法【Error Code: 2006 - MySQL server has gone away】
- ERROR 2006 (HY000) at line xx: MySQL server has gone away 解决方法
- ERROR 2006 (HY000) at line xx: MySQL server has gone away 解决方法
- 关于"[MYSQL ERROR(2006):MySQL server has gone away]"的解决方法
- ERROR 2006 (HY000) at line xx: MySQL server has gone away 解决方法
- 2006 - MySQL server has gone away 问题解决方法
- ERROR 2006 (HY000) at line xx: MySQL server has gone away 解决方法
- MySQL 出现 2006 - MySQL server has gone away 问题的解决方法
- MySQL(Navicat)运行.sql文件时报错:[Err] 2006 - MySQL server has gone away 的解决方法 背景: 今天导入一个数据量很大的.sql文件时,
- [mysq]ERROR 2006 (HY000) at line xx: MySQL server has gone away 解决方法
- #2006 - MySQL server has gone away 问题解决方法
- 多任务操作数据库时:2006, 'MySQL server has gone away'
- 2006 - MySQL server has gone away 问题解决方法
- ThinkPHP出现General error: 2006 MySQL server has gone away的解决方法
- MySQL(Navicat)运行.sql文件时报错:[Err] 2006 - MySQL server has gone away 的解决方法
- ERROR 2006 (HY000) at line xx: MySQL server has gone away 解决方法
- MySQL(Navicat)运行.sql文件时报错:[Err] 2006 - MySQL server has gone away 的解决方法