如何檢視MySQL資料庫的死鎖資訊

時間 2023-02-25 19:55:07

1樓:baby_原來

1. 使用終端或命令提示符登入到mysql,輸入命令:mysql -h -p 3306 -u username -p

解釋:是資料庫ip地址,username是資料庫使用者名稱,輸入命令後,會讓你輸入username對應的密碼,就可以登入了。

2. 如何檢視mysql資料庫的死鎖資訊。

在mysql客戶端下輸入命令:

show engine innodb status \g;

3. 如何定位mysql資料庫的死鎖資訊。

在列印出來的資訊中找到「latest detected deadlock」一節內容,看圖中紅線。

4. 如何分析日誌,定位死鎖原因。

看3裡面的圖,紫色劃線部分。

分析:事務1,等待。

record locks space id 553 page no 376 n bits 368 index `index_user_id` of table `tbj`.`score_user`,這個位置的x鎖。

事務2,持有。

record locks space id 553 page no 376 n bits 368 index `index_user_id` of table `tbj`.`score_user`這個地方的s鎖。

事務2,等待這個地方的x鎖。

理論上這個事務2是可以提交的不會,死鎖,但是這個事務日誌只列印最後一部分死鎖,資訊,這裡面隱含的條件是,事務1也持有。

record locks space id 553 page no 376 n bits 368 index `index_user_id` of table `tbj`.`score_user`這個地方的s鎖,這樣,事務2不能加x鎖,同時事務1也不能加x鎖,產生死鎖。

2樓:折柳成萌

方法/步驟。

使用終端或命令提示符登入到mysql,輸入命令:

mysql -h -p 3306 -u username -p password

在mysql客戶端下輸入命令:

show engine innodb status \g;

在列印出來的資訊中找到「latest detected deadlock」一節內容。

分析其中的內容,我們就可以知道最近導致死鎖的事務有哪些。

3樓:愛可生雲資料庫

方法1:利用 metadata_locks 檢視。

此方法僅適用於 mysql 以上版本,該版本 performance_schema 新增了 metadata_locks,如果上鎖前啟用了後設資料鎖的探針(預設是未啟用的),可以比較容易的定位全域性鎖會話。

方法2:利用 events_statements_history 檢視此方法適用於 mysql 以上版本,啟用 performance_schema.

eventsstatements_history( 預設未啟用, 預設啟用),該表會 sql 歷史記錄執行,如果請求太多,會自動清理早期的資訊,有可能將上鎖會話的資訊清理掉。

方法3:利用 gdb 工具如果上述兩種都用不了或者沒來得及啟用,可以嘗試第三種方法。利用 gdb 找到所有執行緒資訊,檢視每個執行緒中持有全域性鎖物件,輸出對應的會話 id,為了便於快速定位,我寫成了指令碼形式。

也可以使用 gdb 互動模式,但 attach mysql 程序後 mysql 會完全 hang 住,讀請求也會受到影響,不建議使用互動模式。

方法4:show processlist

如果備份程式使用的特定使用者執行備份,如果是 root 使用者備份,那 time 值越大的是持鎖會話的概率越大,如果業務也用 root 訪問,重點是 state 和 info 為空的,這裡有個小技巧可以快速篩選,篩選後嘗試 kill 對應 id,再觀察是否還有 wait global read lock 狀態的會話。

方法5:重啟試試!

如何檢視mysql資料庫的死鎖日誌

如何檢視mysql的兩條語句是否會死鎖

查詢mysql 哪些表正在被鎖狀態

mysql show processlist能直接看到死鎖的資訊嗎?我怎麼沒看出來

4樓:豐收在春天

可直接在mysql命令列執行:show engine innodb status\g; 檢視造成死鎖的sql語句,分析索引情況,然後優化sql然後show processlist; 另外可以開啟慢查詢日誌。

mysql 檢視錶 是否有死鎖

如何檢視mysql資料庫的使用者,如何檢視mysql資料庫使用者密碼

進入mysql終端use mysql select user from user 就可以看到資料庫的使用者了。如何檢視mysql資料庫使用者密碼 如何檢視mysql資料庫的登入名和密碼 通過windows的服務管理器檢視。首先安裝maki5。服務端 開始 執行 輸入 services.msc 回車。...

如何改mysql資料庫資料庫密碼

文件類共創空間 修改mysql是需要有mysql裡的root許可權的,下面介紹幾種修改mysql資料庫密碼的方法 方法一使用phpmyadmin,這是最簡單的了,修改mysql庫的user表,不過別忘了使用password函式。方法二使用mysqladmin,這是前面宣告的一個特例。mysqladm...

如何通過Excel查詢MySQL資料庫

通常的做法是通過csv檔案作為中間檔案,因為這種格式為很多資料庫所接受。具體的做法也很簡單,如下 第一步 將excel檔案另存為檔案。excel 這裡介紹一種非常高效的方法。就是藉助excel外掛sqlcel,這個外掛在處理資料上面有很多可取之處,非常值得學習。比如在excel中有一個訂單id欄位,...