0
4

1 回答 1

0

为您的连接方法添加超时:

db = MySQLdb.connect (host = HOST, user = USER, passwd = PASS, db = DB,
                      connect_timeout = TIMEOUT)

在您的except块中执行此操作,以便您重新连接。

为了让您的生活更轻松,请将您的连接代码放在一个单独的函数中,以便您可以重复使用它。像这样的东西(未经测试):

def get_cursor()
    try:
    db = MySQLdb.connect (host = HOST, user = USER, passwd = PASS, db = DB,
                          connect_timeout = TIMEOUT)
    except MySQLdb.Error, e:
        print("Error %d: %s" %(e.args[0], e.args[1]))
        sys.exit(1);
    return db.cursor()

def mysql_handling(cursor, string):
    while True:
        try:
            cursor.execute(string)
            if 'SELECT' not in string:
                db.commit()    
            break
        except MySQLdb.MySQLError:
            cursor.close()
            mysql_error_tracking(string)
            cursor = get_cursor()

def main():
    mysql_handling(get_cursor(), string)
于 2013-03-02T13:15:57.970 回答