1836: ER_READ_ONLY_MODE: Running in read-only mode(読み取り専用モードで稼働中)
MySQL意味
InnoDB が読み取り専用モード (innodb_read_only=ON) で稼働している、またはデータディレクトリ/メディアが読み取り専用であり、InnoDB テーブルへの書き込みと DDL が拒否される。注: read_only/super_read_only 有効時の書き込み試行はこのコードではなく 1290 (ER_OPTION_PREVENTS_STATEMENT) を返す。
原因
サーバーが innodb_read_only=ON で起動された (例: 読み取り専用メディア、共有データディレクトリ、分析用コピー)。このモードでは InnoDB テーブルに対して INSERT/UPDATE/DELETE や CREATE/DROP/ALTER TABLE などの変更を行えない。
対処方法
書き込みが必要な場合は innodb_read_only なしでサーバーを起動する: my.cnf から innodb_read_only=ON の行を削除して再起動する (この変数は動的ではなく再起動が必要)。状態の確認: SELECT @@innodb_read_only; データディレクトリとファイルシステムが書き込み可能であることを確認する。レプリカ/HA セカンダリに書き込んでいる場合 (1290) は、書き込みをプライマリに振り向ける。
同じデータベースの他の項目
- 1969MariaDB: Query execution was interrupted (max_statement_time exceeded)(クエリの実行が中断された)
- 1927MariaDB: ER_CONNECTION_KILLED: Connection was killed(接続が強制終了された)
- 1290ER_OPTION_PREVENTS_STATEMENT: running with the --read-only option(--read-only オプションで稼働中)
- 3819ER_CHECK_CONSTRAINT_VIOLATED: Check constraint is violated(CHECK 制約違反)
- 1118ER_TOO_BIG_ROWSIZE: Row size too large(行サイズが大きすぎる)
- 1170ER_BLOB_KEY_WITHOUT_LENGTH: BLOB/TEXT column used in key specification without a key length(キー長を指定せずに BLOB/TEXT 列をキーに使用)
- 1592ER_BINLOG_UNSAFE_STATEMENT: Unsafe statement written to the binary log(安全でない文がバイナリログに書き込まれた)