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;
Ещё по этой СУБД
- 1153Получен пакет больше 'max_allowed_packet' байт
- 1969MariaDB: выполнение запроса прервано (превышен max_statement_time)
- 1927MariaDB: ER_CONNECTION_KILLED: Connection was killed
- 1836ER_READ_ONLY_MODE: Running in read-only mode
- 3819ER_CHECK_CONSTRAINT_VIOLATED: Check constraint is violated
- 1118ER_TOO_BIG_ROWSIZE: Row size too large
- 1170ER_BLOB_KEY_WITHOUT_LENGTH: BLOB/TEXT column used in key specification without a key length