DBAtlas · Атлас эксплуатации баз данных

1290: ER_OPTION_PREVENTS_STATEMENT: running with the --read-only option

MySQL

Что это значит?

Сервер MySQL отклонил изменяющий данные оператор (INSERT/UPDATE/DELETE/DDL), так как работает с параметром --read-only или --super-read-only. При read_only пользователи с CONNECTION_ADMIN/SUPER всё ещё могут писать; при включённом super_read_only не могут и они, а сообщение звучит как '--super-read-only option'.

Почему возникает?

read_only=ON или super_read_only=ON; чаще всего — случайная попытка записи на реплику. Реплики и вторичные узлы Group Replication держатся в режиме только для чтения ради согласованности данных; автоматика отработки отказа переводит бывший primary в super_read_only. Запись на неправильный узел во время failover/switchover также вызывает эту ошибку.

Как исправить

Направляйте запись на основной (source) сервер. Если этот сервер действительно должен стать новым primary: 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 →

Ещё по этой СУБД