Habilitar e Revisar o General Query Log
O log de consultas gerais (general query log) registra cada instrução SQL recebida dos clientes. É uma ferramenta inestimável para depuração e auditoria, mas deve ser usada temporariamente, pois pode impactar o desempenho e consumir espaço em disco significativo. Nesta etapa, você habilitará o log, gerará alguma atividade e revisará o arquivo de log.
Primeiro, abra o terminal a partir do seu desktop.
Conecte-se ao servidor MySQL como usuário root. Neste ambiente de laboratório, você pode usar sudo para conectar sem senha.
sudo mysql -u root
Assim que vir o prompt mysql>, habilite o log de consultas gerais globalmente.
SET GLOBAL general_log = 'ON';
Por padrão, o arquivo de log é armazenado no diretório de dados do MySQL. Para facilitar o acesso, vamos alterar sua localização para o diretório /tmp.
SET GLOBAL general_log_file = '/tmp/mysql_general.log';
Você pode verificar a nova localização executando:
SHOW VARIABLES LIKE 'general_log_file';
A saída deve confirmar o caminho que você acabou de definir.
+------------------+-------------------------+
| Variable_name | Value |
+------------------+-------------------------+
| general_log_file | /tmp/mysql_general.log |
+------------------+-------------------------+
1 row in set (0.01 sec)
Agora, execute alguns comandos para gerar entradas no log.
CREATE DATABASE IF NOT EXISTS testdb;
USE testdb;
SELECT 'Logging this query' AS message;
Após executar esses comandos, saia do shell do MySQL.
exit
De volta ao seu terminal, visualize o conteúdo do arquivo de log.
sudo cat /tmp/mysql_general.log
Você verá os comandos que executou, juntamente com informações de conexão e timestamps. Isso confirma que o log de consultas gerais está funcionando corretamente.
/usr/sbin/mariadbd, Version: 10.6.18-MariaDB-0ubuntu0.22.04.1 (Ubuntu 22.04). started with:
Tcp port: 3306 Unix socket: /run/mysqld/mysqld.sock
Time Id Command Argument
250728 14:12:46 33 Query SHOW VARIABLES LIKE 'general_log_file'
250728 14:12:50 33 Query CREATE DATABASE IF NOT EXISTS testdb
33 Query SELECT DATABASE()
33 Init DB testdb
33 Query show databases
33 Query show tables
33 Query SELECT 'Logging this query' AS message
250728 14:12:56 33 Quit
Finalmente, é uma boa prática desabilitar o log quando terminar. Você pode fazer isso diretamente do terminal.
sudo mysql -u root -e "SET GLOBAL general_log = 'OFF';"
Isso garante que o log não continue a crescer e afetar o desempenho do servidor.