Come effettuare il debug di MySQL

Tempo di lettura: < 1 minuto
Aggiornata 9 mesi fa

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.

[print-me target=".print-target" printstyle="pom-small-black"/]