您的位置:首页 > 编程语言 > Python开发

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()  

 

至此,问题解决。

 
只要保证每次操作数据库之前连接数据库就可以。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐