¿Cómo registrar todas las consultas mysql en el archivo de registro?

17

Estoy usando Mysql 5.6.12 en el entorno del servidor Wamp. Ahora quiero registrar todas las consultas en el archivo ".log", las consultas que se ejecutan por PHP o desde PHPMyAdmin, quiero registrarlas ...

Qazi
fuente

Respuestas:

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

Tenga en cuenta que habilitar general_logen un servidor de producción tiene una sobrecarga que debe evitar. Puede consultar consultas problemáticas desde slow log.

Mahesh Patil
fuente
1
Para mí, tuve que usar "general_log = 1" en lugar de "general_log = on".
GuyPaddock
Trabajó en el servidor Wamp, usando mysql 5.6.7. Lo único que tuve que cambiar fueron las rutas a los archivos tje, en mi caso, C: \ wamp \ logs \ mysql_query.log.
Mário Rodrigues
¿Por qué todos estos valores de configuración? Justo general_logy general_log_filees suficiente.
Laurent
8

Dado que este es el tipo de cosas que probablemente solo desee hacer temporalmente, puede ser útil hacerlo desde el shell en lugar de hacerlo a través del archivo de configuración:

> 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";
Boicot SE para Monica Cellio
fuente
5

Pon estas dos líneas en my.cnf.

[mysqld]

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

Esto registrará todas las consultas al servidor, desde cualquier fuente, no solo PHP / PHPMyAdmin.

Sin embargo, tenga cuidado: habilitar el registro general puede colocar una gran carga en su servidor. Para ser utilizado con moderación por períodos cortos / depuración solamente.

La documentación está disponible aquí . Para allá:

Para deshabilitar o habilitar el registro de consultas generales o cambiar el nombre del archivo de registro en tiempo de ejecución, use las variables del sistema global general_log y general_log_file. Establezca general_log en 0 (u OFF) para deshabilitar el registro o en 1 (u ON) para habilitarlo. Establezca general_log_file para especificar el nombre del archivo de registro.

Entonces,

general_log     = on

y

general_log     = 1

son sinónimos!

Vérace
fuente
Para mí, tuve que usar "general_log = 1" en lugar de "general_log = on".
GuyPaddock
@GuyPaddock, ¿qué versión de MySQL está utilizando?
Vérace