Em diversas circunstancias é útil fazer logs dos comandos executados numa base de dados MySQL / MariaDB directamente na base de dados. Assim podemos ignorar todo o software e código acima da base de dados e fazer debug de “baixo nível”.
Para tal temos duas opções, registo para tabela ou ficheiro. Para registar para tabela devemos executar o seguinte na consola da base de dados:
SET GLOBAL log_output = 'TABLE'; SET GLOBAL general_log = 'ON'; // OFF para desligar.
Isto irá registar todos os comandos executados para a base de dados interna mysql
, na tabela general_log
. A tabela irá crescer rapidamente e pode ser limpa com o comando TRUNCATE
:
TRUNCATE mysql.general_log; TRUNCATE mysql.slow_log;
No caso de pretendermos registar para ficheiro:
SET GLOBAL log_output = 'FILE'; SET GLOBAL general_log_file = '/Applications/MAMP/logs/mysql_general.log'; // Caminho para o ficheiro SET GLOBAL general_log = 'ON'; // OFF para desligar.
ATENÇÃO: O logging ligado tem um impacto considerável na performance da base de dados e deverá ser desactivado quando não for necessário, bem como a tabela general_log
limpa.