[ERROR] InnoDB: Page [page id: space=42, page number=3]logsequence number14532708is in the future...

服务连接不到MySQL,MySQL日志报错,数据库损坏!

2018-06-11T12:50:24.617098Z0[ERROR] InnoDB: Page [page id: space=42, page number=3]logsequence number14532708is in the future! Current systemlogsequence number12151645.

2018-06-11T12:50:24.617116Z0[ERROR] InnoDB: Your database may be corrupt or you may have copied the InnoDB tablespace but not the InnoDBlogfiles. Please refer to http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html for information about forcing recovery.

MySQL报错,数据库损坏

解决方法1:

1.停掉服务 

2.将数据中的ib_logfile* ib_buffer_pool删掉 rm -rf ib_logfile* ib_buffer_pool 

3.重新构建服务 

4.不行的话,就要进入该服务的MySQL镜像中 kill掉MySQL的进程,在重启服务

还有就是根据提示到MySQL页面 innodb_force_recovery = 1



innodb_force_recovery的参数详解:


1是跳过损坏的索引,服务正常运行 

2是防止主线程和任何清除线程运行 

3是崩溃恢复后,不允许事务 

4是可能会永久损坏数据文件,准备重新构建二级索引,innodb为只读模式 

5是不会查看撤销日志,即时事务未完成,也被视为已经提交,可能永久损坏数据文件。innodb为只读 

6是 不恢复相关的日志,直接重新创建日志文件,可能永久损坏数据。innodb为只读



解决方法二

这个报错是指innodb的索引页坏了,数据应该是没有问题 首先将所有的库数据备份

mysqldump-u root -p --all-databases >all-databases.sql

停掉服务的pod

清空GlusterFS服务器上的对应服务的数据备份

重新构建该服务

docker cp 将备份文件放到服务的MySQL容器中

查看该服务在哪里启动后进入MySQL

查看库

showdatabases;

进入库 use + 库名

导入sql语句

sourceall-databases.sql

你可能感兴趣的:([ERROR] InnoDB: Page [page id: space=42, page number=3]logsequence number14532708is in the future...)