我有一臺服務器正確執行9/10次,但有時我得到錯誤「在查詢過程中丟失與MySQL服務器的連接」,然後整個過程停止/凍結。確保查詢得到執行
我試圖讓MySQL查詢再次執行,如果它失敗使用此功能,不幸的是,似乎代碼停止或卡住,每當我得到一個錯誤。難道我做錯了什麼?
下面的字符串是一樣的東西:SELECT xx FROM xxx WHERE xxx
try:
db = MySQLdb.connect (host = "",
user = "",
passwd = "",
db = "")
except MySQLdb.Error, e:
print("Error %d: %s" %(e.args[0], e.args[1]))
sys.exit(1);
cursor = db.cursor()
def mysql_handling(string):
while 1:
try:
cursor.execute(string)
if 'SELECT' not in string:
db.commit()
break
except:
mysql_error_tracking(string)
mysql_error_tracking
是要監視的查詢失敗,大部分時間(不相關)的功能。
可以是任何這些:http://dev.mysql.com/doc/refman/5.0/en/gone-away.html – Tshepang 2013-03-02 12:40:44
我經歷過這已,我只是想檢測出現錯誤時再試一次。 – Lazykiddy 2013-03-02 12:42:37
另外,只需在'except'塊中放入'mysql_error_tracking'函數;不需要爲它創建一個額外的標識符'x'。 – Tshepang 2013-03-02 12:43:50