0
我正在使用python調用mysql中的表並執行查詢。我得到一個錯誤:超出鎖定等待超時;嘗試使用python更新mysql表時嘗試重新啓動事務錯誤
_mysql_exceptions.OperationalError: (1205, 'Lock wait timeout exceeded; try restarting transaction')
tbl_1是一個表中,我必須更新isprocessed列。
cursor.execute('UPDATE tbl_1 SET isprocessed=1 where name='+body)
cursor.close()
cursor1 = db.cursor()
cursor1.execute('SELECT name,height,age,weight from tbl_1 where name='+body)
正在取消消息隊列中的值。如果我運行的代碼沒有UPDATE查詢其運行正常。我認爲cursor.close
將解決問題,但它沒有。我也重啓了mysql。我經歷了類似的問題,但他們都沒有解決我的問題。任何幫助表示讚賞。
我已經設置innodb_lock_wait_timeout
從50到63000
大膽猜測:'cursor.commit()的''而不是cursor.close()' – isedev
COMMIT將有助於,但沒有解釋它。兩個遊標是否從同一個連接對象創建?您的隔離級別設置爲SERIALIZABLE? – geertjanvdk
@geertjanvdk是從相同連接object.isolation級別創建的遊標是SERIALIZABLE – sau