1290: ER_OPTION_PREVENTS_STATEMENT: running with the --read-only option
MySQLNe demek?
MySQL sunucusu --read-only veya --super-read-only seçeneğiyle çalıştığı için veri değiştiren komutu (INSERT/UPDATE/DELETE/DDL) reddetti. read_only'de CONNECTION_ADMIN/SUPER yetkili kullanıcılar yazabilir; super_read_only açıkken onlar da yazamaz ve mesaj '--super-read-only option' olarak gelir.
Neden olur?
read_only=ON ya da super_read_only=ON ayarı; çoğunlukla bir replika (replica) sunucusuna yanlışlıkla yazma denemesi. Replikalar ve Group Replication secondary'leri veri tutarlılığı için salt-okunur tutulur; failover otomasyonları eski primary'yi super_read_only'ye alır. Failover/switchover sırasında yanlış düğüme yazmak da tetikler.
Nasıl çözülür?
Yazma işlemlerini primary (source) sunucuya yönlendirin. Bu sunucu gerçekten yeni primary olmalıysa: SET GLOBAL read_only = OFF; (read_only'yi kapatmak super_read_only'yi de otomatik kapatır; super_read_only'yi açmak da read_only'yi açar). HA aracınızın (Orchestrator/Group Replication/InnoDB Cluster) yönettiği düğümlerde elle değiştirmeyin. Durumu görmek için: SELECT @@read_only, @@super_read_only;
Aynı motorda diğer kayıtlar
- 1153Got a packet bigger than 'max_allowed_packet' bytes
- 1969MariaDB: Query execution was interrupted (max_statement_time exceeded)
- 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