mysql 恢复模式2启动_mysql5.6无法启动,通过设置启动时不进行前滚恢复启动

InnoDB: Failing assertion: addr.page == FIL_NULL || addr.boffset >= FIL_PAGE_DATA

key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 595198 K bytes of memory

开始以为是key_buffer_size、read_buffer_size、sort_buffer_size、max_threads这几个参数的问题,修改以后也没效果。

日志里也说遇到个bug,也不知道到底是不是bug。

查到一篇类似文章:https://blog.51cto.com/legehappy/2119514

通过设置innodb_force_recovery参数不进行回滚才启动数据库。

以下仅供参考!

具体方法:

1、先备份mysql的数据目录(生产中非常重要)!

2、修改my.cnf添加。

[mysqld]

innodb_force_recovery = 1

重启数据库。

这里有6个值可用:

作为一个安全措施,InnoDB 在innodb_force_recovery大于0时阻止INSERT,UPDATE或DELETE操作。对于MySQL5.6.15,将innodb_force_recovery设为4或更高会让InnoDB处于只读模式。

1 (SRV_FORCE_IGNORE_CORRUPT)

即使服务器检测到损坏的页仍让它运行。试图使SELECT* FROM tbl_name跳过损坏的索引记录和页,这样有助于转储表。

2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于您提到的MySQL的innodb_force_recovery设置后innodb is read only的问题,我可以为您提供一些建议。 首先,innodb_force_recovery是一个用于修复InnoDB存储引擎的参数,它可以在MySQL启动设置。该参数有多个可选值,范围从0到6,每个值对应不同的修复级别。当您将innodb_force_recovery参数设置为一个非零值,它会尝试在启动过程中自动修复损坏的InnoDB表。 如果您的MySQL无法启动,并且只有在设置innodb_force_recovery参数后才能启动,但此InnoDB引擎处于只读模式,那么很可能是因为您的数据库文件存在一些损坏或错误。 在这种情况下,建议您行以下操作: 1. 备份数据:在尝试修复之前,务必备份所有数据库文件,以防修复过程中出现一步损坏或数据丢失。 2. 检查错误日志:查看MySQL的错误日志文件,通常位于MySQL的数据目录下。日志中可能会提供一些关于损坏原因的线索。 3. 检查表状态:使用MySQL的工具(如mysqlcheck)检查并修复表状态。您可以尝试运行以下命令来检查和修复表: ```sql mysqlcheck --all-databases --fast --auto-repair ``` 这将检查并自动修复所有数据库中的损坏表。 4. 手动修复:如果自动修复无法解决问题,您可以尝试手动修复损坏的InnoDB表。这可能需要一些专业知识和经验,建议在行手动修复之前先备份数据。 您可以尝试使用工具如`innodb_force_recovery`、`mysqlfrm`、`innodb_recovery_tool`等来尝试修复损坏的表。具体的步骤和命令取决于您的情况和问题的性质,因此建议您参考MySQL官方文档或咨询专业的数据库管理员行操作。 请注意,修复损坏的InnoDB表是一个敏感且复杂的过程,需要谨慎处理。如果您不确定如何操作或没有足够的经验,建议您寻求专业的数据库管理员或MySQL技术支持的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值