Buscar..


Una lista

  • Registro general - todas las consultas - ver general_log VARIABLE
  • Registro lento - consultas más lentas que long_query_time - slow_query_log_file
  • Binlog - para replicación y copia de seguridad - log_bin_basename
  • Registro de retransmisión - también para replicación
  • errores generales - mysqld.err
  • start / stop - mysql.log (no muy interesante) - log_error
  • InnoDB rehacer registro - iblog *

Vea las variables basedir y datadir para la ubicación predeterminada para muchos registros

Algunos registros son activados / desactivados por otras VARIABLES. Algunos están escritos en un archivo o en una tabla.

(Nota para los revisores: Esto necesita más detalles y más explicación.)

Documentadores : incluya la ubicación y el nombre predeterminados para cada tipo de registro, tanto para Windows como para * nix. (O al menos tanto como puedas).

Registro de consultas lentas

El registro de consultas lentas consta de eventos de registro para consultas que long_query_time hasta segundos_tiempo_query en finalizar. Por ejemplo, hasta 10 segundos para completar. Para ver el umbral de tiempo establecido actualmente, emita lo siguiente:

SELECT @@long_query_time;
+-------------------+
| @@long_query_time |
+-------------------+
|         10.000000 |
+-------------------+

Se puede establecer como una variable GLOBAL, en el archivo my.cnf o my.ini . O puede establecerse por la conexión, aunque esto es inusual. El valor se puede configurar entre 0 y 10 (segundos). ¿Qué valor usar?

  • 10 es tan alto que es casi inútil;
  • 2 es un compromiso;
  • 0.5 y otras fracciones son posibles;
  • 0 captura todo; Esto podría llenar el disco peligrosamente rápido, pero puede ser muy útil.

La captura de consultas lentas está activada o desactivada. Y el archivo registrado también se especifica. Lo siguiente captura estos conceptos:

SELECT @@slow_query_log; -- Is capture currently active? (1=On, 0=Off)
SELECT @@slow_query_log_file; -- filename for capture. Resides in datadir
SELECT @@datadir; -- to see current value of the location for capture file

SET GLOBAL slow_query_log=0; -- Turn Off
-- make a backup of the Slow Query Log capture file. Then delete it.
SET GLOBAL slow_query_log=1; -- Turn it back On (new empty file is created)

Para obtener más información, consulte la página del manual de MySQL El registro de consultas lentas

Nota: La información anterior sobre cómo activar / desactivar el slowlog se cambió en 5.6 (?); La versión anterior tenía otro mecanismo.

La "mejor" manera de ver lo que está ralentizando su sistema:

long_query_time=...
turn on the slowlog
run for a few hours
turn off the slowlog (or raise the cutoff)
run pt-query-digest to find the 'worst' couple of queries.  Or mysqldumpslow -s t

Registro de consultas generales

El Registro de consultas generales contiene una lista de información general de conexiones, desconexiones y consultas de clientes. Es invaluable para la depuración, sin embargo, representa un obstáculo para el rendimiento (¿citación?).

A continuación se muestra una vista de ejemplo de un registro de consultas generales:

introduzca la descripción de la imagen aquí

Para determinar si el Registro general se está capturando actualmente:

SELECT @@general_log; -- 1 = Capture is active; 0 = It is not.

Para determinar el nombre del archivo de captura:

SELECT @@general_log_file; -- Full path to capture file

Si no se muestra la ruta completa al archivo, el archivo existe en el datadir .

Ejemplo de Windows:

+----------------------------------------------------------+
| @@general_log_file                                       |
+----------------------------------------------------------+
| C:\ProgramData\MySQL\MySQL Server 5.7\Data\GuySmiley.log |
+----------------------------------------------------------+

Linux:

+-----------------------------------+
| @@general_log_file                |
+-----------------------------------+
| /var/lib/mysql/ip-ww-xx-yy-zz.log |
+-----------------------------------+

Cuando se realizan cambios en la variable GLOBAL general_log_file , el nuevo registro se guarda en el datadir . Sin embargo, la ruta completa ya no puede reflejarse al examinar la variable.

En el caso de que no haya ninguna entrada para general_log_file en el archivo de configuración, se usará por defecto @@hostname .log en el datadir .

Las mejores prácticas son desactivar la captura. Guarde el archivo de registro en un directorio de respaldo con un nombre de archivo que refleje la fecha / hora de inicio / finalización de la captura. Eliminar el archivo anterior si no se produjo un movimiento del sistema de archivos de ese archivo. Establezca un nuevo nombre de archivo para el archivo de registro y active la captura (todo se muestra a continuación). Las mejores prácticas también incluyen una determinación cuidadosa si incluso desea capturar en este momento. Normalmente, la captura está activada solo con fines de depuración.

Un nombre de archivo de sistema de archivos típico para un registro de copia de seguridad podría ser:

/LogBackup/GeneralLog_20160802_1520_to_20160802_1815.log

donde la fecha y la hora son parte del nombre de archivo como un rango.

Para Windows, tenga en cuenta la siguiente secuencia con los cambios de configuración.

SELECT @@general_log; -- 0. Not being captured
SELECT @@general_log_file; -- C:\ProgramData\MySQL\MySQL Server 5.6\Data\GuySmiley.log
SELECT @@datadir; -- C:\ProgramData\MySQL\MySQL Server 5.7\Data\
SET GLOBAL general_log_file='GeneralLogBegin_20160803_1420.log'; -- datetime clue
SET GLOBAL general_log=1; -- Turns on actual log capture. File is created under `datadir`
SET GLOBAL general_log=0; -- Turn logging off

Linux es similar. Estos representarían cambios dinámicos. Cualquier reinicio del servidor recogerá la configuración del archivo de configuración.

En cuanto al archivo de configuración, considere las siguientes configuraciones de variables relevantes:

[mysqld]
general_log_file = /path/to/currentquery.log
general_log      = 1

Además, la variable log_output se puede configurar para la salida de TABLE , no solo FILE . Para eso, por favor vea Destinos .

Por favor vea la página del manual de MySQL El Registro de consultas generales .

Registro de errores

El registro de errores se completa con información de inicio y detención, y eventos críticos encontrados por el servidor.

El siguiente es un ejemplo de su contenido:

introduzca la descripción de la imagen aquí

La variable log_error contiene la ruta al archivo de registro para el registro de errores.

En ausencia de una entrada de archivo de configuración para log_error , el sistema predeterminará sus valores a @@hostname .err en el datadir . Tenga en cuenta que log_error no es una variable dinámica. Como tales, los cambios se realizan a través de los cambios de archivo cnf o ini y el reinicio del servidor (o al ver "Descarga y cambio de nombre del archivo de registro de errores" en el enlace de la página de manual en la parte inferior aquí).

El registro no puede ser deshabilitado por errores. Son importantes para la salud del sistema, mientras que la solución de problemas. Además, las entradas son poco frecuentes en comparación con el Registro de consultas generales.

La variable GLOBAL log_warnings establece el nivel de verbosidad que varía según la versión del servidor. El siguiente fragmento ilustra:

SELECT @@log_warnings; -- make a note of your prior setting
SET GLOBAL log_warnings=2; -- setting above 1 increases output (see server version)

log_warnings como se ve arriba es una variable dinámica.

Los cambios en el archivo de configuración en los archivos cnf e ini pueden parecerse a los siguientes.

[mysqld]
log_error        = /path/to/CurrentError.log
log_warnings     = 2

MySQL 5.7.2 expandió la verbosidad del nivel de advertencia a 3 y agregó el log_error_verbosity GLOBAL. De nuevo, se introdujo en 5.7.2. Puede configurarse dinámicamente y verificarse como una variable o establecerse a través de cnf o ini configuración de archivos de configuración.

A partir de MySQL 5.7.2:

[mysqld]
log_error           = /path/to/CurrentError.log
log_warnings        = 2
log_error_verbosity = 3 

Consulte la página del manual de MySQL titulada El registro de errores, especialmente para vaciar y cambiar el nombre del archivo de registro de errores, y su sección log_warnings registro de errores con versiones relacionadas con log_warnings y error_log_verbosity .



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow