問題現象1:進程wait卡住
測試環境mysql出現了一個怪表:select查詢表卡死,alter修改表卡死,甚至我不想要這個表了,delete、truncate、drop表都卡死卡主了......
解決辦法:
>show full processlist; // 列出進程,找出處於waiting的process,要殺死這些process
......
...... >kill ID; // ID號就是指的列出的第一列“Id”
到此,可以解決一般性的卡死。(如果必要,考慮重啟一下mysql)
問題現象2:刪除表報錯ERROR 1051 (42S02): Unknown table ‘xxx’
表刪除不掉,mysql也重啟了,而且drop表的時候出現ERROR 1051 (42S02): Unknown table......
mysql> drop table db_A.tbl_aaa; ERROR 1051 (42S02): Unknown table 'db_A.tbl_aaa'
解決辦法:
方法①:修復表,使之正常后,再將其刪除(推薦)
[root@server-1 ~]# mysqlcheck --auto-repair --database db_A --user=root --password Warning: Using unique option prefix database instead of databases is deprecated and will be removed in a future release. Please use the full name instead. Enter password: db_A.tbl_aaa OK db_A.tbl_bbb OK db_A.tbl_ccc OK db_A.tbl_ddd OK db_A.tbl_eee OK db_A.tbl_fff OK
再次登錄mysql執行
mysql> use db_A; Database changed mysql> drop table tbl_aaa; Query OK, 0 rows affected (0.01 sec)
方法②:進數據存放目錄直接刪除相應的表文件
mysql默認數據存放目錄: /var/lib/mysql/
~]# cd /var/lib/mysql/db_A/ db_A ]# rm -f tbl_aaa.frm db_A ]# rm -f tbl_aaa.ibd
然后再次連接mysql,db_A庫中的tbl_aaa表就不見了。
結束.
