web-dev-qa-db-ja.com

innodb_forced_recovery> 0 [SqlYog]の場合、操作は許可されません

SQLyogを使用してテーブルを作成しました。値を挿入すると、次のエラーメッセージが表示されます。

Operation not allowed when innodb_forced_recovery > 0.

私のテーブルは、1つの主キーを含む4つの列のみで構成されています。以下は、私の作成および挿入クエリです。

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')
15
RK.

このエラーは、MySQLが読み取り専用モードのときに発生します。

ファイル/etc/my.cnfを編集します。

そして、次の行をコメントアウトします

# innodb_force_recovery = 1

どうやらこの設定はinnodbを読み取り専用にします。共有ホスティングで/etc/my.cnfにアクセスできない場合は、ホストに修正を依頼してください。コメントアウトされているか、/ etc/my.cnfに存在しない場合は、default setting of 0に戻ります。

15
Somnath Muluk

これは私にも起こりますが、私がやったことは、ENGINE = innoDBからENGINE = MyISAMのように、テーブルの作成中にSQLエンジンをInnoDBからMyISAMに変更することでした。

したがって、データベースがあり、それをアップロードする場合は、任意のエディターでデータベースを開き、各テーブルの最後にあるエンジンをinnoDBからMyISAMに変更します。

これで問題は解決しました。

1
Ubaz Zaria