前置き MySQL 5.1で、InnoDBなデータベースを使って何かを開発している最中には、トランザクションがコミット(またはロールバック)される前にプログラム側の処理が(Fatal errorなどで)異常終了したりして、トランザクションがロックを取得したまま放置状態になってしまうことがよくあるらしい(謎)。 そんな時、MySQLのコマンドラインから更新クエリを発行すると、しばらく後に次のようなエラーが返ってくることがある。 ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction 一応参考までに書いておくと、このエラーが返ってくるまでの時間は、次のコマンドで知ることができる。 mysql> show global variables like 'innodb_lock_wait_timeout';