服务连接不到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
网友评论