以下是zabbix监控中的一张history_uint表突然损坏的修复方法,如果修改引擎提示语法错误,请将type修改为engine
解决方法:
在my.cnf中添加innodb_force_recovery=1 ,并重启mysql
[root@zabbix /]# /etc/init.d/mysqld restart
新建同结构表,引擎为myisam
mysql> use zabbix
mysql> create table history_uint_new like history_uint;
mysql> alter table history_uint_new type=myisam;
将原表数据导入到新建的表中;
mysql> Insert into history_uint_new select * from history_uint;
mysql> exit
在my.cnf中注释掉innodb_force_recovery=1 ,并重启mysql
[root@strongzabbix /]# /etc/init.d/mysqld restart
修改新表引擎为innodb
mysql> use zabbix
Alter table history_uint_new type=innodb;
删除原表
mysql> Drop table history_uint;
将新表名称改为原表并刷新权限,重启mysql
mysql> rename table history_uint_new to history_uint;
mysql> flush privileges;
mysql> exit
[root@strongzabbix /]# /etc/init.d/mysqld restart