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 ...

Qazi
fonte

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.

Mahesh Patil
fonte
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";
Xiong Chiamiov
fonte
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!

Vérace
fonte
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