MySQLエラー1205-ロック待機タイムアウトを超えました。トランザクションを再開してみてください



Mysql Error 1205 Lock Wait Timeout Exceeded



MySQLストアドプロシージャの開発中に、次のエラーが報告され、操作が失敗しました。



インターネットを検索したところ、このタイプの問題の主な理由は次のとおりであることがわかりました。MysqlのInnoDBストレージエンジンはトランザクションをサポートしています。トランザクションが開始された後は、アクティブにコミットされていないため、リソースが長期間使用されます。他のトランザクションがリソースをプリエンプトしている場合、最後のトランザクションのロックが原因でプリエンプションが失敗します。したがって、ロック待機タイムアウトを超えました。

解決:
方法1:
1.トランザクションテーブルをチェックして、ロックされたスレッドのIDを見つけます。SELECT* FROM information_schema.INNODB_TRX



2. IDに従って、ロックされたスレッドを強制終了します。65を強制終了します。


方法2:
1. MySQLコマンドを実行します。SHOWFULLPROCESSLISTは、ロックされたスレッドIDを見つけます(下の図の65)。



2. IDに従って、ロックされたスレッドを強制終了します。65を強制終了します。