Python使用PyMysqlモジュールエラー:lock wait timeout exceeded;try restarting transactio
734 ワード
ほほほ、私はただ言いたいだけです:この問題について私は2週間を整えて、この問題の原因について、ネット上で見た多くの文章はすべてconn.commit()を要しますと言って、
しかし私はプログラムの中ですでにcommit()を持っていて、最後に位置決めした問題はPymysqlがマルチスレッド(またはマルチプロセスの下)の面でバグがあることです.はい、あなたは間違っていません.
Pymysqlモジュール自体のバグによるもの:
解決策:DBUtilsを利用する.PooledDB import PooledDBのこのクラスを解決します.
コアは次のとおりです.
しかし私はプログラムの中ですでにcommit()を持っていて、最後に位置決めした問題はPymysqlがマルチスレッド(またはマルチプロセスの下)の面でバグがあることです.はい、あなたは間違っていません.
Pymysqlモジュール自体のバグによるもの:
解決策:DBUtilsを利用する.PooledDB import PooledDBのこのクラスを解決します.
コアは次のとおりです.
POOL = PooledDB(
creator=pymysql,
maxconnections=6,
mincached=2,
maxcached=5,
maxshared=3,
blocking=True,
maxusage=None,
setsession=[],
ping=0,
host=db_info['host'],
port=db_info['port'],
user=db_info['user'],
password=db_info['password'],
database=db_info['database'],
charset='utf8'
)
ああ、このバグは確かに穴があいていますね.