1290: ER_OPTION_PREVENTS_STATEMENT: running with the --read-only option
MySQLWas bedeutet das?
Der MySQL-Server hat eine datenändernde Anweisung (INSERT/UPDATE/DELETE/DDL) abgelehnt, weil er mit der Option --read-only oder --super-read-only läuft. Unter read_only können Benutzer mit CONNECTION_ADMIN/SUPER weiterhin schreiben; ist super_read_only aktiviert, können auch sie es nicht, und die Meldung lautet '--super-read-only option'.
Ursache
read_only=ON oder super_read_only=ON; meist ein versehentlicher Schreibversuch auf einer Replica. Replicas und Group-Replication-Secondaries werden für die Datenkonsistenz schreibgeschützt gehalten; Failover-Automatisierung setzt den alten Primary auf super_read_only. Auch Schreiben auf den falschen Knoten während Failover/Switchover löst den Fehler aus.
Lösung
Leite Schreibzugriffe auf den Primary-Server (Source). Soll dieser Server tatsächlich der neue Primary werden: SET GLOBAL read_only = OFF; (das Abschalten von read_only schaltet automatisch auch super_read_only ab; das Einschalten von super_read_only schaltet auch read_only ein). Ändere es nicht manuell auf Knoten, die dein HA-Tool verwaltet (Orchestrator/Group Replication/InnoDB Cluster). Zustand prüfen: SELECT @@read_only, @@super_read_only;
Weitere Einträge zu dieser Datenbank
- 1153Got a packet bigger than 'max_allowed_packet' bytes (Paket größer als max_allowed_packet)
- 1969MariaDB: Query execution was interrupted (max_statement_time exceeded) (Abfrageausführung unterbrochen)
- 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