Il messaggio di errore indica che il server MySQL è stato avviato con l’opzione --read-only
, impedendo operazioni di scrittura come INSERT
, UPDATE
, DELETE
, e CREATE
.
Soluzioni:
1. Verificare se MySQL è in sola lettura
Esegui questo comando per controllare lo stato della variabile read_only
:
SHOW VARIABLES LIKE 'read_only';
Se il valore è ON
, allora il server è in modalità sola lettura.
2. Disattivare la modalità Read-Only temporaneamente
Se hai accesso con privilegi sufficienti, puoi disattivarla temporaneamente con:
SET GLOBAL read_only = OFF;
Oppure, se sei in modalità super lettura (super_read_only
):
SET GLOBAL super_read_only = OFF;
3. Disattivare Read-Only in modo permanente
Se vuoi disabilitarlo definitivamente, modifica il file di configurazione my.cnf
o my.ini
(dipende dal sistema operativo):
- Apri il file di configurazione:
- Linux:
/etc/my.cnf
o/etc/mysql/my.cnf
- Windows:
C:\ProgramData\MySQL\MySQL Server X.X\my.ini
- Linux:
- Cerca la riga:
read_only = 1
e cambiala in:
read_only = 0
Se esiste anche super_read_only
, assicurati che sia:
super_read_only = 0
Riavvia MySQL:
sudo systemctl restart mysql
oppure
service mysql restart
4. Se sei su un server replica (Master-Slave)
Se il server è uno slave di una replica MySQL, la modalità read_only
è impostata automaticamente. Puoi rimuoverla (se appropriato) con:
STOP SLAVE; SET GLOBAL read_only = OFF;
Tuttavia, modifica la replica solo se sai cosa stai facendo, altrimenti potresti causare problemi di sincronizzazione.
5. Verificare i permessi utente
Se il problema persiste, potrebbe essere un limite sui permessi dell’utente. Controlla con:
SHOW GRANTS FOR 'tuo_utente'@'host';
Se necessario, concedi i permessi appropriati:
GRANT ALL PRIVILEGES ON *.* TO 'tuo_utente'@'host' WITH GRANT OPTION; FLUSH PRIVILEGES;