MySQL數(shù)據(jù)庫執(zhí)行Update卡死問題的解決方法
執(zhí)行數(shù)據(jù)庫更新update操作的時候數(shù)據(jù)庫卡死了
問題分析
一般都是數(shù)據(jù)庫事務(wù)未提交,導(dǎo)致update或者delete卡死。
解決辦法
- 在執(zhí)行完更新或刪除后,記得將事務(wù)提交commit;
- 找到數(shù)據(jù)庫客戶端,執(zhí)行commit操作。
如果還不行。 那么應(yīng)該是數(shù)據(jù)庫在執(zhí)行數(shù)據(jù)操作失敗 or 事務(wù)未提交 之后,將需要執(zhí)行的sql語句鎖死了。
過程復(fù)現(xiàn)和解決
通過如下命令查看數(shù)據(jù)庫的自動提交狀態(tài)
show variables like 'autocommit';
通過SQL設(shè)置數(shù)據(jù)庫自動自動提交為關(guān)閉
-- on為開啟,off為關(guān)閉 set autocommit=off; -- 或者1為開啟,0為關(guān)閉 set autocommit=0;
表中數(shù)據(jù)如下:

打開兩個窗口分別執(zhí)行update操作
update car set color ='銀色' where id = 1; update car set color ='紅色' where id = 1;
查詢正在執(zhí)行的事務(wù):
SELECT * FROM information_schema.INNODB_TRX;

根據(jù)圖中事務(wù)的線程ID(trx_mysql_thread_id)可以看出對應(yīng)的mysql 線程:一個1084 (update正在等待鎖)另一個是1089(update 正在執(zhí)行 沒有提交事務(wù))
可以使用mysql命令殺掉線程:kill 線程id
kill 1089;
期間如果并未殺掉持有鎖的線程:則第二個update語句會提示等待鎖超時。

相關(guān)命令:
-- 查看正在鎖的事務(wù) SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; -- 查看等待鎖的事務(wù) SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS; -- 查詢mysql數(shù)據(jù)庫中存在的進(jìn)程 select * from information_schema.`PROCESSLIST`(show processlist;)
擴展
oracle的操作方式:
查詢鎖定記錄
SELECT s.sid, s.serial# FROM v$locked_object lo, dba_objects ao, v$session s WHERE ao.object_id = lo.object_id AND lo.session_id = s.sid;
刪除鎖定記錄
ALTER system KILL session 'SID,serial#';
總結(jié)
到此這篇關(guān)于MySQL數(shù)據(jù)庫執(zhí)行Update卡死問題解決的文章就介紹到這了,更多相關(guān)MySQL執(zhí)行Update卡死內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決Navicat for MySQL 連接 MySQL 報2005錯誤的問題
在本地MySQL的服務(wù)啟動后,由于Navicat的一些功能需要聯(lián)網(wǎng)才可以使用,今天重點給大家介紹Navicat for MySQL 連接 MySQL 報2005 -Unknown MySQL server host ‘localhost’(0)錯誤的情況與解決方法,感興趣的朋友一起看看吧2021-05-05
Windows版mysql?8.0.28?安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了Windows版mysql?8.0.28?安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-06-06
Unity連接MySQL并讀取表格數(shù)據(jù)的實現(xiàn)代碼
本文給大家介紹Unity連接MySQL并讀取表格數(shù)據(jù)的實現(xiàn)代碼,實例化的同時調(diào)用MySqlConnection,傳入?yún)?shù),這里的傳入?yún)?shù)個人認(rèn)為是CMD里面的直接輸入了,string格式直接類似手敲到cmd里面,完整代碼參考下本文2021-06-06
Linux利用UDF庫實現(xiàn)Mysql提權(quán)
根據(jù)MySQL函數(shù)族的可擴展機制,意味著用戶可以自己建立包含有自定義函數(shù)的動態(tài)庫來創(chuàng)建自定義函數(shù),簡稱udf2014-07-07
CentOS系統(tǒng)中MySQL5.1升級至5.5.36
有相關(guān)測試數(shù)據(jù)說明從5.1到5.5+,MySQL性能會有明顯的提升,具體的需要自己建立測試環(huán)境去實踐下,今天我們就來操作下,并記錄下來升級的具體步驟2017-07-07
mysql使用GROUP BY分組實現(xiàn)取前N條記錄的方法
這篇文章主要介紹了mysql使用GROUP BY分組實現(xiàn)取前N條記錄的方法,結(jié)合實例形式較為詳細(xì)的分析了mysql中GROUP BY分組的相關(guān)使用技巧,需要的朋友可以參考下2016-06-06
MySQL使用show status查看MySQL服務(wù)器狀態(tài)信息
這篇文章主要介紹了MySQL使用show status查看MySQL服務(wù)器狀態(tài)信息,需要的朋友可以參考下2017-01-01

