/usr/libexec/mysqld:表./DBNAME/TABLE_NAME.MYI的错误密钥文件;尝试修复它的错误和解决方案
时间:2020-01-09 10:44:04 来源:igfitidea点击:
我在mysql.log文件中收到以下错误:
100630 2:03:39 [ERROR] /usr/libexec/mysqld: Incorrect key file for table ./app2_db/aix_data_user.MYI; try to repair it
密钥文件不正确;尝试修复它
如何解决此错误并在UNIX或者Linux操作系统下修复我的表?
有两种方法可以修复此错误并修复mysql表。
方法1:使用MySQL命令行
以root用户身份登录,输入(app2_db是数据库名称):
$ mysql -u root -p app2_db
要检查名为aix_data_user的表,请在以下mysql>提示符下执行:
mysql> check table aix_data_user;
输出示例:
+---------------------+-------+----------+----------------------------------------------------------+ | Table | Op | Msg_type | Msg_text | +---------------------+-------+----------+----------------------------------------------------------+ | table aix_data_user | check | warning | Table is marked as crashed | | table aix_data_user | check | warning | 2 clients are using or haven't closed the table properly | | table aix_data_user | check | error | record delete-link-chain corrupted | | table aix_data_user | check | error | Corrupt | +---------------------+-------+----------+----------------------------------------------------------+ 4 rows in set (0.00 sec)
警告!最好在执行表修复操作之前备份表;在某些情况下,该操作可能会导致数据丢失。
可能的原因包括但不限于文件系统错误。
执行以下sql命令以修复aix_data_user表,执行:
mysql> repair table aix_data_user;
输出示例:
+---------------------+--------+----------+----------+ | Table | Op | Msg_type | Msg_text | +---------------------+--------+----------+----------+ | table aix_data_user | repair | status | OK | +---------------------+--------+----------+----------+ 1 row in set (0.00 sec)
选项#2:使用mysqlcheck命令
mysqlcheck命令用于检查,修复,优化和分析mysql表。
通用语法如下:
mysqlcheck [options] db_name [tables] mysqlcheck -u userName -p db_name table1
要检查aix_data_user表,请执行:
$ mysqlcheck -u root -p app2_db aix_data_user
输出示例:
Enter password: aix_data_user OK
要修复该表,请将自动修复选项传递给mysqlcheck命令:
$ mysqlcheck --auto-repair -u root -p app2_db aix_data_user