+-
Python3 – ‘超过锁定等待超时;尝试重新启动事务’并且只处理数据库
使用 Python我一直得到一个

(1205, 'Lock wait timeout exceeded; try restarting transaction')

每当我尝试插入特定表时出错.但是,当我尝试直接从MySQL控制台插入时,它工作得很好.展望着

SHOW FULL PROCESSLIST

在数据库上显示没有其他活动查询.由于这是一个没有附加实时应用程序的开发数据库,​​我无法想象任何问题.但是,它是在托管我们的生产数据库的服务器上提供的,因此我强烈希望尽可能不进行重置.关于如何调试这个的任何建议?

注意
如果我使用SHOW FULL PROCESSLIST查看正在对数据库运行的查询,最终会失败并显示上述消息,然后从MySQL控制台手动插入它,它会按预期工作.

编辑
以下是查询示例:

INSERT INTO deals (user_ID, store_ID, storeChain_ID, title, dealSaving, dealDisclaimer, restriction, dealImage, dealURL, submit_ID, userProvider_ID, createDate, createDateTime, expirationDate, expirationDateTime, ZIP, STATE, city, businessType, DealType_ID, IP, rating, popular, dealSearchData, tag, submitName, provider_dealID) VALUES (NULL, 2651049, NULL, 'Toronto East Community Arts Program', 'Three-Week Photography Workshop', NULL, NULL, 'https://a1.image.net/imgs/8423535b-bd3b-4e1e-afee-ab2869970a4c/700_q60.jpg', 'https://www.exmples.com/deals/1336374', 111, 1, '2015-11-12', '2015-11-12 10:01:58.282826', '2015-11-17 09:59:59', '2015-11-17 23:59:00', 'M4M 1K7', 'ON', 'Toronto', NULL, '1', '127.0.0.1', 0, 144565, 'Three-Week Photography Workshop', 'Photography Class', 'Partner', 1336374)

编辑
使用该建议的示例如下:

self.DB['master']['cursor'].execute("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED") self.DB['master']['con'].commit() self.DB['master']['cursor'].execute(dealsquery,data) self.DB['master']['con'].commit()
最佳答案
事实证明,一个不同的组件正在建立连接并缺少commit()语句.
点击查看更多相关文章

转载注明原文:Python3 – ‘超过锁定等待超时;尝试重新启动事务’并且只处理数据库 - 乐贴网