问题:13:15:47 InnoDB: Page checksum 2390903969, prior-to-4.0.14-form checksum 2524550738
InnoDB: stored checksum 2319722401, prior-to-4.0.14-form stored checksum 192332111
InnoDB: Page lsn 0 1902263731, low 4 bytes of lsn at page end 1900395394
InnoDB: Page number (if stored to page already) 16222,
InnoDB: space id (if created with >= MySQL-4.1.1 and stored already) 0
InnoDB: Page may be an index page where index id is 0 462
InnoDB: (index "GEN_CLUST_INDEX" of table "zabbix"."history_uint")
InnoDB: Database page corruption on disk or a failed
InnoDB: file read of page 16222.
InnoDB: You may have to recover from a backup.
InnoDB: It is also possible that your operating
InnoDB: system has corrupted its own file cache
InnoDB: and rebooting your computer removes the
InnoDB: error.
InnoDB: If the corrupt page is an index page
InnoDB: you can also try to fix the corruption
解决方法:
在my.cnf中添加innodb_force_recovery=1 ,并重启mysql
[[email protected] /]# /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
[[email protected] /]# /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
[[email protected] /]# /etc/init.d/mysqld restart