1290: ER_OPTION_PREVENTS_STATEMENT: running with the --read-only option (se ejecuta con la opción --read-only)
MySQL¿Qué significa?
El servidor MySQL rechazó una sentencia que modifica datos (INSERT/UPDATE/DELETE/DDL) porque se ejecuta con la opción --read-only o --super-read-only. Con read_only, los usuarios con CONNECTION_ADMIN/SUPER todavía pueden escribir; con super_read_only habilitado tampoco pueden, y el mensaje dice '--super-read-only option'.
¿Por qué ocurre?
read_only=ON o super_read_only=ON; lo más habitual, un intento accidental de escritura en una réplica. Las réplicas y los secundarios de Group Replication se mantienen en solo lectura por consistencia de datos; la automatización de failover pone el antiguo primario en super_read_only. Escribir en el nodo equivocado durante un failover/switchover también lo provoca.
Cómo solucionarlo
Dirija las escrituras al servidor primario (source). Si este servidor realmente debe convertirse en el nuevo primario: SET GLOBAL read_only = OFF; (desactivar read_only desactiva automáticamente también super_read_only; activar super_read_only también activa read_only). No lo cambie manualmente en nodos gestionados por su herramienta de HA (Orchestrator/Group Replication/InnoDB Cluster). Para comprobar el estado: SELECT @@read_only, @@super_read_only;
Más entradas de este motor
- 1153Got a packet bigger than 'max_allowed_packet' bytes (paquete mayor que max_allowed_packet)
- 1969MariaDB: Query execution was interrupted (max_statement_time exceeded) (ejecución de la consulta interrumpida)
- 1927MariaDB: ER_CONNECTION_KILLED: Connection was killed (la conexión fue terminada)
- 1836ER_READ_ONLY_MODE: Running in read-only mode (se ejecuta en modo de solo lectura)
- 3819ER_CHECK_CONSTRAINT_VIOLATED: Check constraint is violated (se infringe la restricción 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 (columna BLOB/TEXT usada en una clave sin longitud de clave)