Mysql錯誤:ERROR 1205 (HY000): Lock wait timeout exceeded解決辦法

來源:互聯網
上載者:User


臨時解決辦法

執行mysql命令:show full processlist;

然後找出插入語句的系統id

執行mysql命令:kill id

在網路上找了想相關資料,這裡摘錄如下:

首先,查看資料庫的進程資訊:

show full processlist;

/*結果略,主要看id列的值*/

再查看事物表:

SELECT * FROM information_schema.INNODB_TRX\G;
/*結果略,注意結果中的trx_mysql_thread_id部分的值*/

尋找對應的id,然後kill id的值即可;

mysql預設是自動認可的,可以用以下命令查看:

 select @@autocommit;
值為1就是自動認可,如果你的不是1,但你又想要自動認可,那麼設定的命令是:

set global autocommit=1;
 

表資料量也不大,按照普通的情況來說,簡單的update應該不會造成阻塞的,mysql都是autocommit,不會出現update卡住的情況,去查看下autocommit的值。
mysql> select @@autocommit;
+--------------+
| @@autocommit |
+--------------+
| 0 |
+--------------+
1 row in set (0.00 sec)


mysql>

看到亮閃閃的0,這個設定導致原來的update語句如果沒有commit的話,你再重新執行update語句,就會等待鎖定,當等待時間過長的時候,就會報ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction的錯誤。
所以趕緊commit剛才執行的update語句,之後 set global autocommit=1;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.