私のテーブルにデータを挿入しようとしていますが、ロックが継続しています。MySQLエラーコード:1205.ロック待ちタイムアウトを超えました。挿入時にトランザクションを再開してみてください
insert into inventory_files(id, pro_id) values(30,6569);
次のエラーが発生します。
次に、そのデータを挿入します。
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ ;
他のテーブルに挿入する際に問題はありません。その他の提案。
私も走った。
SHOW ENGINE INNODB STATUS;
ロックされているテーブルはありません。
'のInnoDB'、 ''、 '
2017年8月4日13時57分34秒0x7f0c44461700 INNODBモニタ出力最後の29秒から算出された第2の平均当たり
バックグラウンドスレッド
srv_master_threadループ:93 srv_active、0 srv_shutdown、2985 srv_idle
srv_master_threadログフラッシュと書き込み:3076
セマフォ
OSの待ちARRAY INFO:予約数29
OSの待ちARRAY INFO:信号数29
RW共有0をスピンが、52を丸め、OSは26
RW-除くスピンを待ちます、52.00 RW共有:0,0を丸め、OSは0
RW-SXは、0をスピン0を丸め、OSが待機当たり0
スピンラウンドを待つ待機します0.00 RW-excl、0。TRXのnに対して行わ00 RW-SX
TRANSACTIONS
のTrx IDカウンタ2147575956 \ N パージ:実行しているが、アイドル
履歴リスト長91
:< 0状態O:< 2147575378アンドゥN 2 O各セッションのトランザクションのLIST:
--- TRANSACTION 421165916588792、
を開始していません0ロック構造体(複数可)、ヒープ・サイズ1136、0行ロック(S)
--- TRANSACTION 421165916587872、起動していない
0ロック構造体(複数可)、ヒープ・サイズ1136、0行ロック( S)
--- TRANSACTION 2147575922、ACTIVE 104秒
6ロック構造体(複数可)、ヒープ・サイズ1136、52行ロック(S)、ログエントリ
MySQLのスレッドID 32 5を元に戻しますOSスレッドハンドル139690660574976、クエリID 43020 localhost 127.0.0.1 my_web_ユーザ
--- TRANSACTION 2147575860、ACTIVE 211秒
6ロック構造体(複数可)、ヒープ・サイズ1136、52行ロック(単数または複数)、アンドゥログエントリ5 MySQLのスレッドID 30、OSのスレッドハンドル139690661377792 、クエリID 40076ローカルホスト127.0.0.1のmy_web_user
--- TRANSACTION 2147575771、ACTIVE 413秒 6ロック構造体(複数可)、ヒープ・サイズ1136、52行ロック(単数または複数)は、ログエントリ5 MySQLのスレッドID 23を元に戻します、OSスレッドハンドル139690660976384、クエリID 35541ローカルホスト127.0.0.1 my_web_user
---トランザクション2147575640、アクティブ540秒 6ロック構造体、ヒープサイズ1136,52行ロック、ログエントリの取り消し28 MySQLスレッドID 16、OSスレッドハンドル139690661177088、クエリID 29555 localhost 127.0。 0.1 my_web_user
--- TRANSACTION 2147575372、ACTIVE 990秒 6ロック構造体(複数可)、ヒープ・サイズ1136、52行ロック(単数または複数)、ログエントリ28 MySQLのスレッドID 11、OSのスレッドハンドル139690661578496を元に戻す、クエリW:ID 4137ローカルホスト127.0.0.1のmy_web_user
のTrxビューがファイルI/O I/Oスレッド0の状態を見て、ID> = 2147575373でTRXが表示されません読み取り完成したaioリクエスト(バッファスレッドの挿入)のために寄付 私は、my_web_userが行をロックしていると仮定しています。どのように行をロック解除するのですか?
可能な重複[MySQLのエラー1205:ロック待ちタイムアウトを超過](https://stackoverflow.com/質問/ 2383694/mysql-error-1205-lock-wait-timeout-exceeded) – nacho
"ロックされたテーブルはありません。技術的には真実ですが(InnoDBはテーブルではなく行をロックするため)、もちろんロックがあります。 'SHOW ENGINE INNODB STATUS;'は実際にはそれを探すのに適しているので、もう一度見てみるとおそらく見つからないでしょう。または、あなたの質問に出力を追加してください。それを見つける手助けができるかもしれません。 – Solarflare
もう一度ロックしています。私はエンジンの出力を掲載します。 – user3525290