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')
このエラーは、MySQLが読み取り専用モードのときに発生します。
ファイル/etc/my.cnf
を編集します。
そして、次の行をコメントアウトします
# innodb_force_recovery = 1
どうやらこの設定はinnodbを読み取り専用にします。共有ホスティングで/etc/my.cnfにアクセスできない場合は、ホストに修正を依頼してください。コメントアウトされているか、/ etc/my.cnfに存在しない場合は、default setting of 0
に戻ります。
これは私にも起こりますが、私がやったことは、ENGINE = innoDBからENGINE = MyISAMのように、テーブルの作成中にSQLエンジンをInnoDBからMyISAMに変更することでした。
したがって、データベースがあり、それをアップロードする場合は、任意のエディターでデータベースを開き、各テーブルの最後にあるエンジンをinnoDBからMyISAMに変更します。
これで問題は解決しました。