mysql鎖表確認(rèn)及解除鎖表的實現(xiàn)示例
一、查看表是否被鎖
一共3種方式
1、查詢庫表命令
information_schema庫里的processlist表,存著正在進行的線程數(shù)據(jù),可通過where條件模糊匹配執(zhí)行sql中的表名來拿到該表的相關(guān)線程數(shù)據(jù)。
通過查看state字段確認(rèn)表是否被鎖,可翻譯或百度查看詳細鎖表原因。
select id,db,user,host,command,time,state,info from information_schema.processlist #where info like '%表名%' order by time desc;
字段 | 注釋 |
id | 線程id標(biāo)識,當(dāng)鎖表或進程卡死時可用kill殺掉 |
user | 當(dāng)前連接用戶 |
host | 顯示當(dāng)前線程命令發(fā)出的的客戶端Ip和端口號,用來追蹤 |
db | 當(dāng)前連接的數(shù)據(jù)庫名 |
command | 連接狀態(tài),一般是休眠(sleep),查詢(query),連接(connect)的命令的類型 |
time | 連接執(zhí)行時間,單位是秒 |
state | 顯示當(dāng)前線程中sql語句的執(zhí)行狀態(tài) |
info | 執(zhí)行的sql語句 |
確認(rèn)被鎖后,用命令kill殺掉該線程來釋放。
kill id;
2、連接工具直接查詢
我這用navicat演示
通過查看state字段確認(rèn)表是否被鎖。
確認(rèn)被鎖后,用命令kill殺掉該線程來釋放。
3、show processlist 命令
使用show processlist;查詢命令來查看當(dāng)前所有線程
show processlist;
也可添加full查看更詳細的內(nèi)容
show full processlist;
區(qū)別:
- 如果不用full,則在Info字段中只顯示每個語句的前100個字符
這個命令要一條條數(shù)據(jù)查找,建議使用前兩種才方法
查看info字段中的表名。
通過查看state字段確認(rèn)表是否被鎖。
確認(rèn)被鎖后,用命令kill殺掉該線程來釋放。
二、解鎖表
確認(rèn)被鎖后,用命令kill殺掉相關(guān)線程來釋放。
kill 線程id;
到此這篇關(guān)于mysql 鎖表確認(rèn)及解除鎖表的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)mysql 鎖表確認(rèn)及解除鎖表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL使用mysqldump實現(xiàn)數(shù)據(jù)完全備份
mysqldump是MySQL自帶的備份工具,可方便實現(xiàn)對MySQL的備份,也可以將指定的庫、表導(dǎo)出為SQL腳本,下面小編就來教大家如何使用mysqldump實現(xiàn)數(shù)據(jù)完全備份吧2023-07-07mysql利用group_concat()合并多行數(shù)據(jù)到一行
把查詢name字段得到的多行記錄進行合并,可以通過程序?qū)崿F(xiàn),但也可直接在sql層完成,需要的朋友可以參考下2014-07-07mysql刪除重復(fù)記錄并且只保留一條的實現(xiàn)方法
本文主要介紹了mysql刪除重復(fù)記錄并且只保留一條的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01MySQL將多行數(shù)據(jù)轉(zhuǎn)換為一行數(shù)據(jù)的實現(xiàn)示例
在MySQL中,GROUP_CONCAT函數(shù)可以將多個記錄的列值連接成一個字符串,適用于將多行數(shù)據(jù)合并為單行顯示,本文就來詳細的介紹一下,感興趣的可以了解一下2024-09-09