Creating a trace file
Se mysqld
va in crash, un buon modo per identificare il problema è creare un trace file.
Un binario di mysqld
che è stato compilato con il supporto al debug può creare dei trace file utilizzando il pacchetto DBUG creato da Fred Fish. Per sapere se un binario di mysqld
ha il supporto per il debug, si può eseguire mysqld -V
alla riga di comando. Se il numero di versione termina con -debug
, allora il binario mysqld
è stato compilato per il debug.
Si veda Compilare MariaDB per il debug per sapere come creare un binario di mysqld
con il debug abilitato.
Per creare un trace log, si avvii mysqld
in questo modo:
mysqld --debug
Su Windows, il mysqld
di debug si chiama mysqld-debug
ed è meglio usare anche l'opzione --standalone
. Perciò su Windows il comando è di questo tipo:
mysqld-debug --debug --standalone
Una volta avviato il server, si usi il normale client da riga di comando mysql
(o un altro client) per connettersi e lavorare sul server.
Terminato il debug, il server si arresta così:
mysqladmin shutdown
Opzioni di DBUG
I trace file possono crescere fino a dimensioni significative. E' possibile ridurle dicendo al server di registrare solo certi elementi.
Il flag --debug
può accettare opzioni aggiuntive nella forma di una stringa di opzioni delimitate dal carattere di due punti (:). Le singole opzioni possono contenere liste di opzioni separate da virgole.
Per esempio:
mysqld --debug=d,info,error,query:o,/tmp/mysqld.trace
L'opzione 'd
' limita l'output alle macro con un nome del tipo: DBUG_<N>. Nell'esempio, il trace file contiene l'output delle macro info, error e query. 'd
' da sola (senza sotto-opzioni) seleziona tutte le macro DBUG_<N>.
L'opzione 'o
' reindirizza l'output ad un file ('/tmp/mysqld.trace' nell'esempio), sovrascrivendolo se già esiste.