W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
依次執(zhí)行1-6步,運(yùn)行第6步生成的語(yǔ)句即可。
如果特別著急,運(yùn)行 1 2 6 步 以及第6步生成的kill語(yǔ)句 即可。
?show open tables where in_use > 0 ;
?如果查詢(xún)結(jié)果為空。則證明表沒(méi)有在使用。結(jié)束。
mysql> show open tables where in_use > 0 ;
Empty set (0.00 sec)
如果查詢(xún)結(jié)果不為空,繼續(xù)后續(xù)的步驟。
mysql> show open tables where in_use > 0 ;
+----------+-------+--------+-------------+
| Database | Table | In_use | Name_locked |
+----------+-------+--------+-------------+
| test | t | 1 | 0 |
+----------+-------+--------+-------------+
1 row in set (0.00 sec)
?
show processlist;
?show processlist 是顯示用戶(hù)正在運(yùn)行的線(xiàn)程,需要注意的是,除了 root 用戶(hù)能看到所有正在運(yùn)行的線(xiàn)程外,其他用戶(hù)都只能看到自己正在運(yùn)行的線(xiàn)程(即與您正在使用的MySQL帳戶(hù)關(guān)聯(lián)的線(xiàn)程),看不到其它用戶(hù)正在運(yùn)行的線(xiàn)程。如果不使用FULL關(guān)鍵字,Info字段中只顯示每條語(yǔ)句的前100個(gè)字符。
SELECT * FROM information_schema.INNODB_TRX;
SELECT * FROM information_schema.INNODB_LOCKs;
SELECT * FROM information_schema.INNODB_LOCK_waits;
看事務(wù)表INNODB_TRX,里面是否有正在鎖定的事務(wù)線(xiàn)程,看看ID是否在show processlist里面的sleep線(xiàn)程中,如果是,就證明這個(gè)sleep的線(xiàn)程事務(wù)一直沒(méi)有commit或者rollback而是卡住了,我們需要手動(dòng)kill掉。
搜索的結(jié)果是在事務(wù)表發(fā)現(xiàn)了很多任務(wù),這時(shí)候最好都kill掉。
這里用的方法是:通過(guò)information_schema.processlist表中的連接信息生成需要處理掉的MySQL連接的語(yǔ)句臨時(shí)文件,然后執(zhí)行臨時(shí)文件中生成的指令。
SELECT concat('KILL ',id,';')
FROM information_schema.processlist p
INNER JOIN information_schema.INNODB_TRX x
ON p.id=x.trx_mysql_thread_id
WHERE db='test';
記得修改對(duì)應(yīng)的數(shù)據(jù)庫(kù)名。
這個(gè)語(yǔ)句執(zhí)行后結(jié)果如下:
mysql> SELECT concat('KILL ',id,';') FROM information_schema.processlist p INNER JOIN information_schema.INNODB_TRX x ON p.id=x.trx_mysql_thread_id WHERE db='test';
+------------------------+
| concat('KILL ',id,';') |
+------------------------+
| KILL 42; |
| KILL 40; |
+------------------------+
2 rows in set (0.00 sec)
執(zhí)行結(jié)果里的兩個(gè)kill語(yǔ)句即可解決鎖表。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: