解决mysql表不能查询修改删除等操作并出现卡死

在这里可以讨论MariaDB/MySql相关使用技术

版主: jvip_chen

回复
头像
jvip_chen
社区版主
社区版主
帖子: 121
注册时间: 2019年 1月 5日 13:36 星期六

解决mysql表不能查询修改删除等操作并出现卡死

帖子 jvip_chen » 2019年 9月 27日 11:23 星期五

问题现象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/

代码: 全选

[root@server-1 ~]# 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表就不见了。

回复

回到 “MariaDB/MySql数据库”