Visualización del Log de Errores

Consulte performance_schema.error_log que contiene errores, advertencias y actualizaciones de estado desde el monitor de estado, el motor de almacenamiento InnoDB, el motor secundario RAPID, el canal de replicación y MySQL Server.

Uso de un cliente de línea de comandos

Utilice un cliente de línea de comandos como el cliente MySQL o el shell MySQL para ver performance_schema.error_log.

Para esta tarea, se necesita lo siguiente:
  • Un sistema de base de datos en ejecución.
  • Un sistema de base de datos conectado mediante MySQL Shell, MySQL Client o cualquier cliente de línea de comandos que elija.
Realice lo siguiente para ver performance_schema.error_log mediante MySQL Shell o MySQL Client:
Nota

performance_schema.error_log solo está disponible en el modo de ejecución SQL.
  1. Ejecute el siguiente comando:
    SELECT * FROM performance_schema.error_log;
  2. (Opcional) Para filtrar los logs para que muestren solo los errores, ejecute el siguiente comando:
    SELECT * FROM performance_schema.error_log WHERE PRIO='error'; 
  3. (Opcional) Para filtrar los logs para mostrar solo los errores del subsistema HEALTH, ejecute el siguiente comando:
    SELECT * FROM performance_schema.error_log WHERE SUBSYSTEM IN
        ('HEALTH');

    Puede realizar la selección de los siguientes subsistemas:

    • HEALTH
    • InnoDB
    • RAPID
    • Repl
    • Server
  4. (Opcional) Para filtrar el subsistema HEALTH en un intervalo de tiempo de 2 horas, ejecute el siguiente comando:
    SELECT * FROM performance_schema.error_log WHERE SUBSYSTEM = 'HEALTH' AND 
    LOGGED > DATE_SUB(NOW(),INTERVAL 2 HOUR);
  5. (Opcional) Para recuperar un recuento de cuántas instancias de un error específico se han producido en un solo día, ejecute el siguiente comando:
    SELECT HOUR(LOGGED), COUNT(*) FROM error_log WHERE ERROR_CODE = 'MY-010914' AND 
    LOGGED > DATE_SUB(NOW(),INTERVAL 1 DAY) GROUP BY HOUR(LOGGED);
  6. (Opcional) Para recuperar un recuento de cuántas instancias de un error específico se han producido en una semana, ejecute el siguiente comando:
    SELECT DAY(LOGGED), COUNT(*) FROM error_log WHERE ERROR_CODE = 'MY-010914' AND 
    LOGGED > DATE_SUB(NOW(),INTERVAL 1 WEEK) GROUP BY DAY(LOGGED);
Sin utilizar ningún filtro, obtendrá una respuesta similar a la siguiente, que muestra la hora en que se ha producido el evento, el ID de thread, la prioridad, el código de error (si existe), el subsistema y el texto que describe el evento:
*************************** 1. row ***************************
    LOGGED: 2021-05-10 17:09:31.132868
 THREAD_ID: 0
      PRIO: Note
ERROR_CODE: MY-010096
 SUBSYSTEM: Server
      DATA: Ignoring --secure-file-priv value as server is running with --initialize(-insecure).
*************************** 2. row ***************************
    LOGGED: 2021-05-10 17:09:31.137469
 THREAD_ID: 0
      PRIO: Note
ERROR_CODE: MY-010949
 SUBSYSTEM: Server
      DATA: Basedir set to /usr/.
*************************** 3. row ***************************
    LOGGED: 2021-05-10 17:09:31.141389
 THREAD_ID: 0
      PRIO: System
ERROR_CODE: MY-013169
 SUBSYSTEM: Server
      DATA: /usr/sbin/mysqld (mysqld 8.0.24-u1-cloud) initializing of server in progress as process 12383
*************************** 4. row ***************************
    LOGGED: 2021-05-10 17:09:31.192341
 THREAD_ID: 0
      PRIO: Note
ERROR_CODE: MY-010458
 SUBSYSTEM: Server
      DATA: --initialize specified on an existing data directory.
*************************** 5. row ***************************
..............................
..............................