Seguí las instrucciones aquí: http://crazytoon.com/2007/07/23/mysql-changing-runtime-variables-with-out-restarting-mysql-server/ pero eso parece solo establecer el umbral.
¿Necesito hacer algo más como establecer la ruta del archivo?
Según los documentos de MySQL
Si no se proporciona ningún valor file_name para --log-slow-queries, el nombre predeterminado es nombre_host-slow.log. El servidor crea el archivo en el directorio de datos a menos que se proporciona un nombre de ruta absoluto para especificar un directorio diferente.
Corriendo
MOSTRAR VARIABLES
no indica ninguna ruta de archivo de registro y no veo ningún archivo de registro de consulta lenta en mi servidor ...
EDITAR
Parece que estoy usando la versión del servidor 5.0.77, así que necesitaba hacer:
SET GLOBAL log_slow_queries = 1;
pero obtengo: ERROR 1238 (HY000): La variable 'log_slow_queries' es una variable de solo lectura
Supongo que voy a necesitar reiniciar el servidor y tener log_slow_queries configurado en mi configuración.
Respuestas:
Prueba
SET GLOBAL slow_query_log = 'ON';
y tal vezFLUSH LOGS;
Esto supone que está utilizando MySQL 5.1 o posterior. Si está utilizando una versión anterior, deberá reiniciar el servidor. Esto está documentado en el Manual de MySQL . Puede configurar el registro en el archivo de configuración o en la línea de comando.
fuente
SET GLOBAL slow_query_log = 'OFF';
funciona como se esperaba, también.FLUSH LOGS
no fue necesario en ningún caso.Para consultas lentas en la versión <5.1, la siguiente configuración funcionó para mí:
También tenga en cuenta que debe colocarlo debajo de
[mysqld]
parte del archivo de configuración y reiniciarmysqld
.fuente
sudo mkdir /var/log/mysql
sudo touch /var/log/mysql/slow-query.log
sudo chown -R _mysql /var/log/mysql/
log_slow_queries
fue obsoleto en MySQL 5.1.29 porslow-query-log
. El Manual de referencia de MySQL 5.1 tiene más detalles.¿Encontrar registro habilitado o no?
SHOW VARIABLES LIKE '%log%';
Establecer los registros: -
SET GLOBAL general_log = 'ON'; SET GLOBAL slow_query_log = 'ON';
fuente
Manual de MySQL - archivo de registro de consulta lenta
Esto afirma que puede ejecutar lo siguiente para configurar el archivo de registro lento (5.1.6 en adelante):
set global slow_query_log_file = 'path';
La variable slow_query_log solo controla si está habilitada o no.
fuente
Estos funcionan
SET GLOBAL LOG_SLOW_TIME = 1; SET GLOBAL LOG_QUERIES_NOT_USING_INDEXES = ON;
Roto en mi configuración 5.1.42
SET GLOBAL LOG_SLOW_QUERIES = ON; SET GLOBAL SLOW_QUERY_LOG = ON; set @@global.log_slow_queries=1;
http://bugs.mysql.com/bug.php?id=32565
Parece que la mejor manera de hacer esto es establecer log_slow_time muy alto y así "apagar" el registro de consultas lentas. Disminuya log_slow_time para habilitarlo. Utilice el mismo truco (configurado en OFF) para log_queries_not_using_indexes.
fuente
Creo que el problema es asegurarse de que el servidor MySQL tenga los derechos sobre el archivo y pueda editarlo.
Si puede conseguir que tenga acceso al archivo, puede intentar configurar:
SET GLOBAL slow_query_log = 1;
De lo contrario, siempre puede 'recargar' el servidor después de cambiar el archivo de configuración. En Linux es generalmente
/etc/init.d/mysql reload
fuente
Si desea habilitar los registros de errores generales y el registro de errores de consulta lenta en la tabla en lugar del archivo
Para comenzar a iniciar sesión en la tabla en lugar del archivo:
set global log_output = “TABLE”;
Para habilitar el registro de consultas general y lento:
set global general_log = 1; set global slow_query_log = 1;
Para ver los registros:
select * from mysql.slow_log; select * from mysql.general_log;
Para más detalles visite este enlace
http://easysolutionweb.com/technology/mysql-server-logs/
fuente
Esto debería funcionar en mysql> 5.5
fuente