1.查看表被鎖狀態(tài)
創(chuàng)新互聯專注為客戶提供全方位的互聯網綜合服務,包含不限于成都網站設計、成都網站制作、延津網絡推廣、微信小程序開發(fā)、延津網絡營銷、延津企業(yè)策劃、延津品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯為所有大學生創(chuàng)業(yè)者提供延津建站搭建服務,24小時服務熱線:18982081108,官方網址:www.rwnh.cn
2.查看造成死鎖的sql語句
3.查詢進程
4.解鎖(刪除進程)
5.查看正在鎖的事物? (8.0以下版本)
6.查看等待鎖的事物?(8.0以下版本)
一:檢查是否鎖表, 查詢進程并殺死進程
1) 查詢是否鎖表
show open tables where in_use 0;
2) 查詢進程(如果您有SUPER權限,您可以看到所有線程。否則,您只能看到您自己的線程)
show processlist;
二:查看在鎖事務,殺死事務對應的線程ID
1) 查看正在鎖的事務
select * from information_schema.INNODB_LOCKS;
2) 殺死進程id(就是[select * from information_schema.INNODB_LOCKS; ]命令的trx_mysql_thread_id列)
kill 線程ID
3) 查看等待鎖的事務
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
其它:
1) 查看服務器狀態(tài)
show status like '%lock%';
2) 查看超時時間:
show variables like '%timeout%';
方法1:利用 metadata_locks 視圖
此方法僅適用于 MySQL 5.7 以上版本,該版本 performance_schema 新增了 metadata_locks,如果上鎖前啟用了元數據鎖的探針(默認是未啟用的),可以比較容易的定位全局鎖會話。
方法2:利用 events_statements_history 視圖此方法適用于 MySQL 5.6 以上版本,啟用 performance_schema.eventsstatements_history(5.6 默認未啟用,5.7 默認啟用),該表會 SQL 歷史記錄執(zhí)行,如果請求太多,會自動清理早期的信息,有可能將上鎖會話的信息清理掉。
方法3:利用 gdb 工具如果上述兩種都用不了或者沒來得及啟用,可以嘗試第三種方法。利用 gdb 找到所有線程信息,查看每個線程中持有全局鎖對象,輸出對應的會話 ID,為了便于快速定位,我寫成了腳本形式。也可以使用 gdb 交互模式,但 attach mysql 進程后 mysql 會完全 hang 住,讀請求也會受到影響,不建議使用交互模式。
方法4:show processlist
如果備份程序使用的特定用戶執(zhí)行備份,如果是 root 用戶備份,那 time 值越大的是持鎖會話的概率越大,如果業(yè)務也用 root 訪問,重點是 state 和 info 為空的,這里有個小技巧可以快速篩選,篩選后嘗試 kill 對應 ID,再觀察是否還有 wait global read lock 狀態(tài)的會話。
方法5:重啟試試!
新聞標題:怎么查詢mysql表的鎖 mysql查詢是否鎖表
瀏覽路徑:http://www.rwnh.cn/article38/ddcpgpp.html
成都網站建設公司_創(chuàng)新互聯,為您提供網站建設、Google、網站設計、微信小程序、手機網站建設、App開發(fā)
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯