MySQL数据库断电修复(Database page corruption on disk or a failed)

一、报错信息

启动日志如下:

MySQL数据库断电修复(Database page corruption on disk or a failed)
MySQL数据库断电修复(Database page corruption on disk or a failed)

看日志的大体的意思是数据页的损坏。

二、解决方案

2.1 修改配置

 /etc/my.cnf 配置文件修改innodb 启动参数修改

[mysqld]
 
innodb_force_recovery = 1

如果innodb_force_recovery = 1不生效,则可尝试2-6几个数字。

然后重启mysql,重启成功。然后使用mysqldump或 pma 导出数据,执行修复操作等。修复完成后,把该参数注释掉,还原默认值0。

innodb_force_recovery影响整个InnoDB存储引擎的恢复状况。默认为0,表示当需要恢复时执行所有的恢复操作(即校验数据页/purge undo/insert buffer merge/rolling back&forward),当不能进行有效的恢复操作时,mysql有可能无法启动,并记录错误日志;

innodb_force_recovery可以设置为1-6,大的数字包含前面所有数字的影响。当设置参数值大于0后,可以对表进行select,create,drop操作,但insert,update或者delete这类操作是不允许的。
2.2导出数据脚本


### 数据库导出 
mysqldump -uroot -pwinner -A -B   --force  >  ipvacloud20220929.sql

注意:这里的数据一定要备份成功。然后删除原数据库中的数据。

2.3 删除ib_logfile0、ib_logfile1、ibdata1
备份MySQL数据目录下的ib_logfile0、ib_logfile1、ibdata1三个文件,然后将这三个文件删除,还删除了此数据库文件夹下的 .ibd结尾的文件。

MySQL数据库断电修复(Database page corruption on disk or a failed)

2.4 配置my.cnf

将my.cnf中innodb_force_recovery = 1或2——6几个数字这行配置删除或者配置为innodb_force_recovery = 0 重启MySQL服务

2.5 将数据导入MySQL数据库

mysql -uroot -pwinner repair_azkaban   <  ipvacloud20220929.sql ;

此种方法下要注意的问题:

ib_logfile0、ib_logfile1、ibdata1这三个文件一定要先备份后删除;

一定要确认原数据导出成功了,最后导入 成功 恢复了数据库。

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/10793

(0)
凯影的头像凯影
上一篇 2023年12月29日 下午3:52
下一篇 2024年1月4日 下午2:58

相关推荐

  • 1558 -Column count ot mysql.proc 1s wrong.Expected 20,found 16.Created with MySQL50096, now running 50525. Please use mysql_upgrade to fix this error.

    我在MySQL版本5.5上面创建存储过程的时候就出现了上面的错误。甚至使用show procedure status 查看存储过程都会报上面的错误。 注意操作前先备份!!! 错误原因:是由于你曾经升级过MySQL,或用不同的MySQL版本进行备份迁移恢复。升级和迁移完后未使用mysql_upgrade升级数据结构造成的。 mysql.proc:是MySQL的…

    2023年12月21日
    81600
  • mysql的主从延迟问题主要原因及解决

    MySQL数据库主从的安装搭建方法 在实际的生产中,为了解决Mysql的单点故障已经提高MySQL的整体服务性能,一般都会采用主从复制。 比如:在复杂的业务系统中,有一句sql执行后导致锁表,并且这条sql的的执行时间有比较长,那么此sql执行的期间导致服务不可用,这样就会严重影响用户的体验度。 主从复制中分为主服务器(master)和从服务器(slave)…

    2022年6月14日
    1.5K00
  • 关于mysql now()显示的时间不正确

    如果MySQL中的NOW()函数返回的时间不正确,可能有以下几个原因: 时区设置不正确。请使用SELECT @@global.time_zone;命令检查MySQL服务器的全局时区设置,并确保它与你所在地区的时区匹配。如果时区设置不正确,请使用SET GLOBAL time_zone = ‘timezone’;命令进行更正。 系统时间…

    2023年8月22日
    1.3K00
  • Linux在线yum方式安装mysql5.7(适用于mysql8.0)

    Linux下软件常见部署方式有三种:yum安装、rpm安装以及编译安装。由于离线、编译需要先下载多个文件再安装,步骤较多,所以整理了一下在线安装mysql的方法,文中系统为CentOS7.9版本。 1.配置好yum源,包括epel源 使用官方yum仓库,官方下载链接 2. 生成yum源缓存并查看mysql版本 从enable状态来看,默认启用的是最新8.0版…

    2023年1月1日
    97800
  • MySQL:想实现sql语句进行批量删除数据库或表,而引发的熬夜探究

    因为在自测过程中,创建了很多数据库,一个个手动删除属实有点对不起程序员这个身份,那么有没有简单的sql语句操作来进行批量删除数据库呢?于是便有了本篇文章 思路了解到数据库或表的信息都保存在MySQL内置的 information_schema数据库的SCHEMATA表中,因此是否可以通过like查询information_schema中的相关表名,拼接SQL…

    2023年12月21日
    88900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信