mysql数据库如果遇到下列情况可能会损坏,导致某一个或多个表被锁定,在phpmyadmin中显示: 使用中
1、 服务器突然断电导致数据文件损坏。
2、 强制关机,没有先关闭mysql 服务。
3、 mysqld 进程在写表时被杀掉。
4、 使用myisamchk 的同时,mysqld 也在操作表。
5、 磁盘故障。
6、 服务器死机。
7、 mysql 本身的bug 。
不管如何我们都要进行修复,当然一切开始之前需要先备份数据库,以防万一。一般情况下我们可以使用phpmyadmin中的修复功能来修复。
如果还是不行,我们就需要用myisamchk命令来修复,命令如下:
myisamchk -r -f ****.MYI
在我使用这个命令的过程中出现了两个问题,首先提示:myisamchk error unknown variable ‘read_buffer=2m’, 既然未知那就是不支持喽,所以我们在my.cnf中注释掉read_buffer=2m即可,还有write_buffer=2m也注释掉。
第二个问题是:myisamchk: error: 140 ,这个问题也很好解决,把上面的命令中表的后缀去掉即可。
myisamchk -r -f **** (表名字)
出现这些问题,不知道是不是我的mysql版本过高有关,虽然没有用到8,但也用到了7.3.9这个版本。比较旧的教程已经不适用了。