用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()
至此,问题解决。
只要保证每次操作数据库之前连接数据库就可以。