Como registrar todas as consultas mysql no arquivo de log?


17

Estou usando o Mysql 5.6.12 no ambiente do servidor Wamp. Agora, quero registrar todas as consultas no arquivo ".log", as consultas executadas pelo PHP ou pelo PHPMyAdmin, desejo registrá-las ...

Respostas:


20
[mysqld]
# Set Slow Query Log
long_query_time = 1
slow_query_log = 1
slow_query_log_file = /usr/log/slowquery.log
log_queries_not_using_indexes = 1

#Set General Log
general_log = on
general_log_file=/usr/log/general.log

Observe que a ativação general_logem um servidor de produção tem sobrecarga, você deve evitá-la. Você pode verificar consultas problemáticas em slow log.


11
Para mim, eu tive que usar "general_log = 1" em vez de "general_log = on".
GuyPaddock

Trabalhou no servidor Wamp, usando o mysql 5.6.7. A única coisa que precisei mudar foram os caminhos para os arquivos tje, no meu caso, C: \ wamp \ logs \ mysql_query.log.
Mário Rodrigues

Por que todos esses valores de configuração? Apenas general_loge general_log_fileé suficiente.
laurent

8

Como esse é o tipo de coisa que você provavelmente só quer fazer temporariamente, pode ser útil fazer isso no shell, e não no arquivo de configuração:

> set global general_log_file = "/var/log/mysql/queries.log";
> set global general_log = "ON";
[wait some time, hit some pages, whatever]
> set global general_log = "OFF";

5

Coloque essas duas linhas em my.cnf.

[mysqld]

general_log     = on
general_log_file=/users/ugrad/linehanp/mydb/logfile.txt

Isso registrará todas as consultas no servidor, de qualquer fonte, não apenas do PHP / PHPMyAdmin.

Porém, tenha cuidado - ativar o log geral pode sobrecarregar o servidor. Para ser usado com moderação apenas por curtos períodos / depuração.

A documentação está disponível aqui . Lá fora:

Para desativar ou ativar o log de consulta geral ou alterar o nome do arquivo de log em tempo de execução, use as variáveis ​​globais do sistema general_log e general_log_file. Defina general_log como 0 (ou OFF) para desativar o log ou como 1 (ou ON) para habilitá-lo. Configure general_log_file para especificar o nome do arquivo de log.

Então,

general_log     = on

e

general_log     = 1

são sinônimos!


Para mim, eu tive que usar "general_log = 1" em vez de "general_log = on".
GuyPaddock

@GuyPaddock que versão do MySQL você está usando?
Vérace
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.