MySQL服务器已关闭 - Python

4

我每天都收到以下信息。我的脚本正在通过cron作业运行。有人能帮忙修复吗?

 File "/usr/lib64/python2.6/site-packages/MySQLdb/cursors.py", line 174, in execute
    self.errorhandler(self, exc, value)
  File "/usr/lib64/python2.6/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (2006, 'MySQL server has gone away')

我的代码:

def get_id(test_mysql_conn,id):
    cursor = test_mysql_conn.cursor()
    cursor.execute("""select id from test where id = %s """, (id))
    row = cursor.fetchone()
    if row is not None:
      return row[0]
    return 0

1
请看这个答案:https://dev59.com/_3VC5IYBdhLWcg3wsTfv#982873 - Igor Hatarist
请查看此链接:http://dev.mysql.com/doc/refman/5.0/en/gone-away.html。 - Barun Sharma
提供信息,当您超过最大数据包大小时,可能会出现此错误:请参见此处 - PlasmaBinturong
2个回答

1
尝试以下操作。
if (os.getenv('SERVER_SOFTWARE') and os.getenv('SERVER_SOFTWARE').startswith('Google App Engine/')):
            db = MySQLdb.connect(unix_socket = UNIX_SOCKET + INSTANCE_NAME, host =" HOST/IP", db = "DB_Name", user = "User_Name") //if your mysql is on google server
        else:
            db = MySQLdb.connect(host = "HOST/IP", port = "Port_number", db = "DB_name", user = "User_Name", passwd = "password")

    cursor = db.cursor()
    cursor.connection.autocommit(True)

except Exception, err:
    logging.info("Error In DataBase Connection : " + traceback.format_exc())
    return 'DataBaseProblem'        
try:
    sql = query+str(req_args)
    logging.info("QUERY = "+str(sql))
    cursor.execute(sql)
    procedureResult = cursor.fetchall();
    if str(procedureResult) == '()':
        logging.info("Procedure Returned 0 Record")
        procedureResult = 'DataBaseProblem'


    #logging.info("procedureResult : " + str(procedureResult))
except Exception, err:
    #trackBack = str (traceback.format_exc())
    #raise Exception('DataBaseProblem',trackBack)
    procedureResult="DataBaseProblem"

对于MySQL端口号是3306。


0
这种情况发生在您打开MySQL连接但未关闭它时。在MySQL的一侧存在超时。
您可以做的一件事是在使用完连接后关闭它。另一个方法是使用支持此功能或具有内置池化的ORM(我相信SQLAlchemy是其中之一)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接