DBAtlas · データベース運用アトラス

1290: ER_OPTION_PREVENTS_STATEMENT: running with the --read-only option(--read-only オプションで稼働中)

MySQL

意味

MySQL サーバーが --read-only または --super-read-only オプションで稼働しているため、データ変更文 (INSERT/UPDATE/DELETE/DDL) を拒否した。read_only では CONNECTION_ADMIN/SUPER を持つユーザーは書き込み可能だが、super_read_only が有効な場合はそれも不可となり、メッセージは '--super-read-only option' となる。

原因

read_only=ON または super_read_only=ON。最も多いのはレプリカへの誤った書き込み試行。レプリカと Group Replication のセカンダリはデータ整合性のため読み取り専用に保たれ、フェイルオーバー自動化は旧プライマリを super_read_only にする。フェイルオーバー/スイッチオーバー中に誤ったノードへ書き込んだ場合にも発生する。

対処方法

書き込みをプライマリ (ソース) サーバーに振り向ける。このサーバーを本当に新しいプライマリにする場合: SET GLOBAL read_only = OFF; (read_only をオフにすると super_read_only も自動的にオフになり、super_read_only をオンにすると read_only もオンになる)。HA ツール (Orchestrator/Group Replication/InnoDB Cluster) が管理するノードでは手動で変更しない。状態の確認: SELECT @@read_only, @@super_read_only;

DBAtlas で開く →

同じデータベースの他の項目