Debug di MySQL con i binlog
In alcuni casi MySQL si blocca in modo apparentemente casuale e continuo.
Quando succede, non riesci a effettuare il dump dei database perché, se MySQL si arresta, anche l’export si interrompe.
Puoi eseguire il debug usando i binary log (binlog) di MySQL.
Di seguito trovi i passaggi da seguire in caso di riavvii continui di MySQL.
Abilita i binlog
Modifica il file /etc/mysql/my.cnf e verifica che siano presenti queste configurazioni:
log_bin= /var/log/mysql/mysql-bin.log
expire_logs_days= 10
max_binlog_size= 100M
Poi riavvia MySQL.
Analizza i binlog
Vai in /var/log/mysql/ e leggi i messaggi con il comando:
mysqlbinlog mysql-bin.0000**
All’interno del file trovi informazioni importanti:
use `ilmiodatabaseproblematico`/*!*/;
DELETE FROM `ilmiodatabaseproblematico`.`tys8r_finder_tokens`
Da qui identifichi il database che crea problemi e la query incriminata. Quindi accedi al database da console e replica i comandi, così da verificare che siano effettivamente queste chiamate a creare il blocco.
Limita gli accessi e risolvi
Per prima cosa impedisci che qualcuno acceda al database, in modo da ristabilire la stabilità del sistema: puoi farlo disabilitando i permessi di accesso al database.
Successivamente tenta di riparare il database, oppure eliminalo e ripristina un backup.