澳门金沙vipmysql marked as crashed错误解决方法

mysql marked as crashed错误解决方法

一:MySQL中MyISAM表损坏原因总结:

一:MySQL中MyISAM表损坏原因总结:

 

1、 服务器突然断电导致数据文件损坏;强制关机,没有先关闭mysql 服务;mysqld
进程在写表时被杀掉。
2、 磁盘损坏。
3、 服务器死机。
4、 mysql 本身的bug 。

1、 服务器突然断电导致数据文件损坏;强制关机,没有先关闭mysql 服务;mysqld
进程在写表时被杀掉。
2、 磁盘损坏。
3、 服务器死机。
4、 mysql 本身的bug 。

当mysql由于服务器突然断电或系统磁盘爆满导致数据表文件

二:MySQL中MyISAM表损坏的症状总结:

二:MySQL中MyISAM表损坏的症状总结:

出现marked as crashed and should be required时,进入mysql

1 、查询数据时报出错误:Incorrect key file for table: ‘…’. Try to
repair it
2 、查询不能在表中找到行或返回不完全的数据。
3 、Error: Table ‘…’ is marked as crashed and should be repaired 。
澳门金沙vip,4 、打开表失败: Can’t open file: ‘×××.MYI’ (errno: 145) 。

1 、查询数据时报出错误:Incorrect key file for table: ‘…’. Try to
repair it
2 、查询不能在表中找到行或返回不完全的数据。
3 、Error: Table ‘…’ is marked as crashed and should be repaired 。
4 、打开表失败: Can’t open file: ‘×××.MYI’ (errno: 145) 。

安装目录下的bin文件夹,执行myisamchk 

三:MySQL中MyISAM表损坏的预防:

三:MySQL中MyISAM表损坏的预防:

 

1 、定期检查MyISAM
表。可以使用myisamchk,也可以使用mysqlcheck,还可以使用check table。
2 、在做过大量的更新或删除操作后,使用mysqlcheck或者optimize
table来优化表,这样既减少了文件碎片,又减少了表损坏的概率。 3
、关闭服务器前,先关闭mysqld (正常关闭服务,不要使用kill -9
来杀进程)。
4 、使用ups 电源,避免出现突然断电的情况。
5 、使用最新的稳定发布版mysql ,减少mysql 本身的bug 导致表损坏。
6 、对磁盘做raid ,减少磁盘出错并提高性能。
7 、数据库服务器最好只跑mysqld
和必要的其他服务,不要跑其他业务服务,这样减少死机导致表损坏的可能。

1 、定期检查MyISAM
表。可以使用myisamchk,也可以使用mysqlcheck,还可以使用check table。
2 、在做过大量的更新或删除操作后,使用mysqlcheck或者optimize
table来优化表,这样既减少了文件碎片,又减少了表损坏的概率。 3
、关闭服务器前,先关闭mysqld (正常关闭服务,不要使用kill -9
来杀进程)。
4 、使用ups 电源,避免出现突然断电的情况。
5 、使用最新的稳定发布版mysql ,减少mysql 本身的bug 导致表损坏。
6 、对磁盘做raid ,减少磁盘出错并提高性能。
7 、数据库服务器最好只跑mysqld
和必要的其他服务,不要跑其他业务服务,这样减少死机导致表损坏的可能。

命令解决:

四:MySQL中MyISAM表损坏的修复总结:

四:MySQL中MyISAM表损坏的修复总结:

 

1
、如果mysqld已经宕掉,且无法启动,那么可以通过mysiamchk工具来进行修复。此工具在mysqld服务没有启动时才可以使用。该工具可以检查并分析修复MyISAM表。
2
、如果mysqld仍在运行,或者可以重新启动,那么可以通过mysqlcheck工具来进行修复。或者直接通过mysql的内置修复SQL语句来修复:CHECK
TABLE,REPAIR TABLE ,ANALYSE TABLE,OPTIMIZE
TABLE。这两种方法可以同样达到对表的修复作用。 以上两种方式各有应用场景。

1
、如果mysqld已经宕掉,且无法启动,那么可以通过mysiamchk工具来进行修复。此工具在mysqld服务没有启动时才可以使用。该工具可以检查并分析修复MyISAM表。
2
、如果mysqld仍在运行,或者可以重新启动,那么可以通过mysqlcheck工具来进行修复。或者直接通过mysql的内置修复SQL语句来修复:CHECK
TABLE,REPAIR TABLE ,ANALYSE TABLE,OPTIMIZE
TABLE。这两种方法可以同样达到对表的修复作用。 以上两种方式各有应用场景。

D:\GS1000\greenMySql5\bin>myisamchk -c -r 

MySQL数据表损坏的巧妙修复 修复mysql表之前首先要知道是哪个表出了问题

MySQL数据表损坏的巧妙修复 修复mysql表之前首先要知道是哪个表出了问题

../Data/gs_test/t_operation_log.MYI  

可以用root登录后在information_schema里查找有问题的表名

可以用root登录后在information_schema里查找有问题的表名

 

select TABLE_SCHEMA as DB_DBNAME,TABLE_NAME from
INFORMATION_SCHEMA.tables where engine is null;

select TABLE_SCHEMA as DB_DBNAME,TABLE_NAME from
INFORMATION_SCHEMA.tables where engine is null;

(修复数据库gs_test下的t_operation_log表)

可以通过事件查看器里是否有

可以通过事件查看器里是否有