エラー 1036: テーブルは「読み取り専用」です 解決策
テーブルに対して更新クエリを実行しようとして、「1036 - テーブル」が発生した場合データは読み取り専用です」というエラーが表示された場合、テーブルが制限された状態にあることは明らかです。この問題を修正するには、以下の手順に従います。
1. MySQL 構成を調べます:
MySQL 構成ファイル (/etc/my.cnf または /etc/mysql/my.cnf) で次の設定を確認します。
innodb_force_recovery
場合このパラメータが 1 に設定されている場合、データベースは強制的に読み取り専用モードで動作します。書き込み操作を有効にするには、この設定をコメント アウトするか削除します。
2.テーブル属性を確認します:
サーバー ファイル システム上のテーブルのファイル アクセス許可が読み取り専用でないことを確認します。ファイルを所有するユーザーとグループの両方に対して、テーブル属性を 777 (フル権限) に設定する必要があります。
3.テーブルの最適化と修復:
未使用の領域を再利用し、パフォーマンスを向上させるには、OPTIMIZE TABLE コマンドを使用してみてください。さらに、REPAIR TABLE コマンドを実行してエラーをチェックし、不一致があれば修復します。
4. InnoDB 回復設定を確認してください:
前の手順で問題が解決しない場合は、MySQL データベースの InnoDB 回復設定を確認してください。次のクエリを実行します。
SHOW INNODB STATUS\G
innodb_use_sys_read_only_table で始まる行を探します。この値が 1 に設定されている場合、テーブルが強制的に読み取り専用モードになっていることを示します。この制限を無効にするには、0 に設定します。
5. MySQL を再起動します:
必要な変更を加えた後、更新を有効にするために MySQL サービスを再起動します。
以上がMySQL テーブルが読み取り専用になるのはなぜですか? どのように修正すればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。