gpt4 book ai didi

python - 使用 cursor.execute() 时出现 MySQLdb 错误

转载 作者:行者123 更新时间:2023-11-29 05:43:49 25 4
gpt4 key购买 nike

我正在使用 python,特别是 MySQLdb 来填充数据库,尽管直到最近工作的代码在移动工作服务器后抛出错误:

代码是:

cursor.execute("""SELECT Entry, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P FROM evaluation""")

result = cursor.fetchall()

for record in result:
codeno=int(str(record[15]))
status, progress, reprocessing = RepStatus_new.get_status(code=codeno, proj_tag=str(record[16]),cache_dir="cache", prod_type="g1")
cursor.execute("""UPDATE evaluation SET M=%s WHERE A LIKE %s""",(progress, int(str(record[15]))))

出现的错误是:

File "mySQLtest.py", line 165, in <module>
cursor.execute("""UPDATE evaluation SET M=%s WHERE A LIKE %s""",(progress, int(str(record[15]))))
File "/usr/lib64/python2.5/site-packages/MySQLdb/cursors.py", line 166, in execute
self.errorhandler(self, exc, value)
File "/usr/lib64/python2.5/site-packages/MySQLdb/connections.py", line 35, in defaulterrorhandler
raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (1205, 'Lock wait timeout exceeded; try restarting transaction')

我不确定这是哪里出了问题,因为我说过这段代码直到最近才有效。如果有人有任何建议,他们将不胜感激! (我用字母替换了变量以提高可读性!)

数据库连接正确,因为我可以在 cursor.fetchall() 之后输出“结果”

提前致谢

最佳答案

这是一个快速修复,但更改 innodb_lock_wait_timeout 可能会暂时推迟“超出锁定等待超时”问题。参见 doc .

当您“移动服务器”时,MySQL 版本、引擎或配置是否有可能发生变化?

阅读 SHOW ENGINE INNODB STATUS 的结果会提醒您注意任何最近的锁定问题。

上次我在“移动服务器”时看到这个,是因为冲突/重复的脚本/cron 试图访问相同的表。

无论如何,您可能希望将其推给 serverfault。

关于python - 使用 cursor.execute() 时出现 MySQLdb 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4434889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com