12
我創建了一個小型/基本的python腳本來將數據插入MySQL數據庫。我包含了一些錯誤處理 - 主要是爲了關閉連接和/或防止錯誤情況下掛起的連接(...但也忽略一些錯誤)。使用python MySQLdb連接正確處理異常
我以爲我有什麼(見下文)是對的 - 它似乎工作正常。但偶爾我得到了「太多連接」錯誤 - 我認爲這意味着我根本沒有正確關閉連接(或者錯誤處理不正確)。
conn=MySQLdb.connect(host=####, user=####, passwd=####, db=####)
curs=conn.cursor()
try:
curs.execute(sql)
conn.commit()
except MySQLdb.Error as e:
if e[0]!= ###:
raise
finally:
curs.close()
conn.close()
(我也試過不finally:
)
其他(我認爲重要)的一點是,它是MySQL數據庫使用的InnoDB存儲引擎。這是我第一次使用InnoDB引擎,可能與MyISAM有一些不同之處,但我不知道(如conn.commit()
,但是對於錯誤)......這似乎是所有我的其他問題!
在此先感謝
您應該從'try'主體中移除'conn.close()',因爲它會在'finally'主體中調用_always_。除此之外,它看起來像你正在釋放你的連接。 – lanzz
感謝Lanzz--抱歉,我錯誤地複製了代碼(在沒有'finally:的情況下玩耍,並且在'try' body **和** except' body中有'conn.close()')。 已修復的問題(還有同樣的問題,無論哪種方式) – djmac