A volte può capitare che MySQL si blocchi in continuazione, in modo apparentemente casuale e senza motivo.
In questi casi non è possibile effettuare il dump dei database perché, saltando MySQL, anche l’export si interrompe.
E’ possibile tuttavia effettuare il debug sfruttando i mysql bin log.
Di seguito riportiamo i diversi step da seguire in caso di continui riavii di MySQL:
Abilitazione
modificare il file /etc/mysql/my.cnf verificando che siano presenti queste configurazioni:
log_bin= /var/log/mysql/mysql-bin.log expire_logs_days= 10 max_binlog_size= 100M
e riavviare MySQL.
Analisi
Andare in /var/log/mysql/ e leggere i messaggi con il comando
mysqlbinlog mysql-bin.0000**
All’interno del file troverete informazioni importanti:
use `ilmiodatabaseproblematico`/*!*/; DELETE FROM `ilmiodatabaseproblematico`.`tys8r_finder_tokens`
da cui vedrete qual è il database che crea problemi e la query incriminata. Potrete quindi accedere al database da console e replicare i comandi, così da verificare che effettivamente siano queste chiamate a creare il blocco.
Risoluzione
Il primo passo è fare in modo che nessuno acceda al database, ristabilendo la stabilità del sistema: si può fare disabilitando i permessi di accesso al database.
In seguito dovrete tentare di riparare il db oppure sarà necessario eliminarlo e ripristinare un backup.