当innodb_forced_recovery> 0时,不允许操作[SqlYog]。

19

我使用SQLyog创建了一张表格。当我往里面插入数值时,会弹出以下错误信息:

Operation not allowed when innodb_forced_recovery > 0.

我的表只包含四个列,其中包括一个主键。以下是我的创建和插入查询:

CREATE TABLE `news` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `title` varchar(100) NOT NULL,
  `slug` varchar(100) NOT NULL,
  `descr` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1

insert into `test`.`news` (`title`, `slug`, `descr`)
 values ('titleOne', 'slugOne', 'descOne')

你好,能分享一下你的创建表吗? - Melon
问题已更新,包含创建查询。 - RK.
6
由于MySQL处于只读模式,打开my.cnf文件,将此参数设置为零,然后重新启动MySQL实例。 - ravnur
@ravnur:非常感谢。它起作用了! - RK.
2个回答

20

当MySQL处于只读模式时,会出现此错误。

编辑文件/etc/my.cnf

并注释掉以下行。

# innodb_force_recovery = 1

显然,这个设置会导致innodb变为只读模式。如果您在共享主机上没有访问/etc/my.cnf权限,请要求您的主机提供商为您解决此问题。当在/etc/my.cnf中被注释掉或不存在时,它将恢复到默认值0


1
这种情况也发生在我身上,但我所做的是在创建表时将SQL引擎从InnoDB更改为MyISAM, 像这样 ENGINE=innoDB变为ENGINE=MyISAM
因此,如果您有数据库并希望上传它,请使用任何编辑器打开它,并将每个表的引擎从InnoDB更改为MyISAM。
这解决了问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接