2017-08-04 49 views
1

私のテーブルにデータを挿入しようとしていますが、ロックが継続しています。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が行をロックしていると仮定しています。どのように行をロック解除するのですか?

+0

可能な重複[MySQLのエラー1205:ロック待ちタイムアウトを超過](https://stackoverflow.com/質問/ 2383694/mysql-error-1205-lock-wait-timeout-exceeded) – nacho

+0

"ロックされたテーブルはありません。技術的には真実ですが(InnoDBはテーブルではなく行をロックするため)、もちろんロックがあります。 'SHOW ENGINE INNODB STATUS;'は実際にはそれを探すのに適しているので、もう一度見てみるとおそらく見つからないでしょう。または、あなたの質問に出力を追加してください。それを見つける手助けができるかもしれません。 – Solarflare

+0

もう一度ロックしています。私はエンジンの出力を掲載します。 – user3525290

答えて

1

このエラーが発生する主な理由は、既存のプロセスが実行されているために同じプロセスで新しいプロセスが実行されないことが原因です。

あなたが考えるプロセス番号とXを置き換える

Show full processlist; kill x; 

を試してみては、問題を引き起こしている

関連する問題