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

时间:2014-08-06 08:39:06

标签: mysql sql sqlyog

我使用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')

2 个答案:

答案 0 :(得分:15)

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

修改档案/etc/my.cnf

并注释掉以下行

# innodb_force_recovery = 1

显然,此设置会导致innodb变为只读。如果您无法访问共享主机上的/etc/my.cnf,请让您的主机为您进行修复。当它在/etc/my.cnf中被注释掉或不存在时,它将恢复为default setting of 0

答案 1 :(得分:1)

这也发生在我身上,但我所做的是在将表从InnoDB创建到MyISAM时更改SQL引擎 像 ENGINE = innoDB到ENGINE = MyISAM

因此,如果您拥有数据库并想要上传它,请使用任何编辑器打开它,并将每个表末尾的引擎从innoDB更改为MyISAM。

这解决了问题。