DBAtlas · Atlas d'exploitation des bases de données

1290: ER_OPTION_PREVENTS_STATEMENT: running with the --read-only option (le serveur tourne avec l'option --read-only)

MySQL

Que signifie cette erreur ?

Le serveur MySQL a refusé une instruction modifiant les données (INSERT/UPDATE/DELETE/DDL) car il tourne avec l'option --read-only ou --super-read-only. Sous read_only, les utilisateurs disposant de CONNECTION_ADMIN/SUPER peuvent encore écrire ; avec super_read_only activé, eux non plus, et le message indique '--super-read-only option'.

Cause

read_only=ON ou super_read_only=ON ; le plus souvent une tentative d'écriture accidentelle sur un réplica. Les réplicas et les secondaires Group Replication sont maintenus en lecture seule pour la cohérence des données ; l'automatisation du failover met l'ancien primaire en super_read_only. Écrire sur le mauvais nœud pendant un failover/switchover le déclenche aussi.

Comment la corriger

Dirigez les écritures vers le serveur primaire (source). Si ce serveur doit réellement devenir le nouveau primaire : SET GLOBAL read_only = OFF; (désactiver read_only désactive automatiquement super_read_only ; activer super_read_only active aussi read_only). Ne le modifiez pas manuellement sur les nœuds gérés par votre outil HA (Orchestrator/Group Replication/InnoDB Cluster). Pour vérifier l'état : SELECT @@read_only, @@super_read_only;

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur