【MySQL异常解决】Operation not allowed when innodb_forced_recovery > 0
分类:其他动态 更新时间:2024-10-09 浏览量:228
在做项目的时候,发现mysql能正常启动,就是插入数据时会报错,Cause: java.sql.SQLException: Operation not allowed when innodb_force_recovery > 0。
找了mysql相关资料查询后发现:
innodb_force_recovery取值0代表当MySql关闭时,InnoDB需要完成所有的full purge 和 merge insert buffer操作,这会需要一些时间。
innodb_force_recovery取值1 代表不需要完成上述的full purge ,merge insert buffer操作,但是在缓冲池的一些数据脏页还是会刷新到磁盘。
innodb_force_recovery取值2 代表不完成full purge ,merge insert buffer操作,也不将缓冲池中的数据脏页写回磁盘,而是将日志都写入日志文件。这样不会有任何事物会丢失,但是Mysql数据库下次启动时,会执行recovery 参数Innodb_force_recovery影响了整个InnoDB存储引擎的恢复状况。
因此,需要找到mysql的配置文件,把innodb_force_recovery = 1 修改为 innodb_force_recovery = 0,再重新启动mysql即可。