Python使用PyMysqlモジュールエラー:lock wait timeout exceeded;try restarting transactio

734 ワード

ほほほ、私はただ言いたいだけです:この問題について私は2週間を整えて、この問題の原因について、ネット上で見た多くの文章はすべてconn.commit()を要しますと言って、
しかし私はプログラムの中ですでに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'
)
ああ、このバグは確かに穴があいていますね.