In questa guida breve e facile da seguire, spieghiamo come abilitare la registrazione delle query MySQL/MariaDB e salvare le query in un file.
Quando si utilizza un database, capita spesso che gli sviluppatori vogliano sapere cosa sta succedendo dietro le quinte. Che sia per la risoluzione dei problemi, l'ottimizzazione delle prestazioni o per pura curiosità.
I log di query generali rimangono una delle fonti più popolari di informazioni di controllo e diagnostica 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'abilitazione del registro delle query generali 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 delle query generali MySQL/MariaDB
In MySQL/MariaDB il registro delle query generali è disabilitato per impostazione predefinita.
1. Accedi allo strumento della riga di comando del server MySQL/MariaDB come root:
mysql -u root -p
2. Imposta il percorso del file di registro generale su /var/logs/mysql/general-query.log
eseguendo la query seguente.
SET GLOBAL general_log_file='/var/log/mysql/general-query.log';
Per impostazione predefinita, il registro delle query generali viene scritto nella stessa directory dei dati che contiene le stesse sottodirectory del database (in genere /var/lib/mysql
) e il nome del file di registro 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 di nuovo lo stato del registro delle query generali di MySQL/MariaDB:
SHOW VARIABLES LIKE "general_log%";
Questo è tutto. Da qui in poi puoi fare qualcosa di simile a sudo tail -f
su general-query.log
file dalla riga di comando e tieni d'occhio le cose.
Una volta completata 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 solo attenzione con questo, il file di registro può diventare grande abbastanza velocemente.
Se non desideri eseguire query direttamente, 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
Il registro generale delle query MySQL/MariaDB può essere molto utile quando si sospetta un errore in un client e si desidera sapere esattamente cosa il client ha inviato al database. Quindi, se hai qualche bug o problema con il database, un modo per rintracciare il problema nell'accendere questo registro e controllare cosa sta succedendo.
Puoi leggere ulteriori informazioni sull'abilitazione del registro delle query MySQL/MariaDB generale qui e qui.