Come abilitare la registrazione delle query MySQL/MariaDB
Questa guida breve e facile da seguire spiega come abilitare la registrazione delle query MySQL/MariaDB e salvare le query in un file.
Quando utilizzano un database, gli sviluppatori spesso vogliono sapere cosa succede dietro le quinte, sia per la risoluzione dei problemi, l'ottimizzazione delle prestazioni o per pura curiosità.
I registri delle query generali rimangono una delle fonti di informazioni di controllo e diagnostica più popolari nei database MySQL/MariaDB. Dopo aver abilitato la registrazione, il server del database scriverà le informazioni nel file di registro quando i client si connettono o si disconnettono e registrerà ogni istruzione SQL.
Tuttavia, tieni presente che l'attivazione del registro generale delle query influisce sulle prestazioni di MySQL/MariaDB. Ciò ridurrà il throughput di circa il 13% e aumenterà il tempo di risposta dal server MySQL/MariaDB di circa il 17%.
Quindi, senza ulteriori indugi, iniziamo poiché il processo è piuttosto semplice.
Abilita la registrazione generale delle query MySQL/MariaDB
In MySQL/MariaDB, il registro generale delle query è disabilitato per impostazione predefinita.
1. Accedere allo strumento da riga di comando del server MySQL/MariaDB come root:
mysql -u root -p
2. Imposta il percorso generale del file di registro su /var/logs/mysql/general-query.log
eseguendo la query seguente.
SET GLOBAL general_log_file='/var/log/mysql/general-query.log';
Il log generale delle query è scritto nella stessa directory dei dati che contiene le sottodirectory del database (tipicamente /var/lib/mysql
) e il nome del file di log predefinito è il nome host. Tuttavia, come puoi vedere, questo può essere modificato.
3. Abilita il registro generale del server:
SET GLOBAL general_log = 1;
Controlliamo nuovamente lo stato del registro delle query generali di MySQL/MariaDB:
SHOW VARIABLES LIKE "general_log%";
Questo è tutto. Puoi fare qualcosa di simile a sudo tail -f
sul file general-query.log
dalla riga di comando e tenere d'occhio la situazione.
Correlato: comandi di testa e coda in Linux spiegati con esempi
Una volta eseguita l'ispezione, puoi disabilitare la registrazione delle query MySQL/MariaDB come segue:
SET GLOBAL general_log = 0;
È certamente indesiderabile aver attivato la registrazione su un server di produzione. Quindi fai attenzione a questo; il file di registro può diventare rapidamente grande.
Supponiamo di non voler eseguire direttamente le query. In tal caso, puoi comunque abilitare la registrazione delle query MySQL/MariaDB modificando direttamente il file di configurazione MySQL/MariaDB, ma tieni presente che questo approccio richiede il riavvio del server del database.
Conclusione
Quando sospetti un errore in un client e desideri sapere esattamente cosa ha inviato il client al database, il registro generale delle query MySQL/MariaDB può essere utile.
Pertanto, se hai un problema con il database, un modo per risolverlo è abilitare la registrazione delle query e osservare cosa sta succedendo.
Puoi leggere ulteriori informazioni sull'abilitazione del registro generale delle query MySQL/MariaDB qui e qui.