📌 4 de Agosto, 2015

MySQL: Registo de Comandos

Programação

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.