Exibindo o Log de Erro

Exiba performance_schema.error_log que contém erros, avisos e atualizações de status do Health Monitor, do mecanismo de armazenamento InnoDB, do mecanismo secundário RAPID, do canal de replicação e do MySQL Server.

Usando um Cliente de Linha de Comando

Use um cliente de linha de comando, como MySQL Client ou MySQL Shell, para exibir performance_schema.error_log.

Esta tarefa requer o seguinte:
  • Um sistema de banco de dados em execução.
  • Um sistema de banco de dados conectado usando MySQL Shell, MySQL Client ou qualquer cliente de linha de comando de sua escolha.
Faça o seguinte para exibir performance_schema.error_log usando o MySQL Shell ou o MySQL Client:
Observação

performance_schema.error_log só está disponível no modo de execução SQL.
  1. Execute o seguinte comando:
    SELECT * FROM performance_schema.error_log;
  2. (Opcional) Para filtrar os logs para mostrar somente erros, execute o seguinte comando:
    SELECT * FROM performance_schema.error_log WHERE PRIO='error'; 
  3. (Opcional) Para filtrar os logs para mostrar apenas erros do subsistema HEALTH, execute o seguinte comando:
    SELECT * FROM performance_schema.error_log WHERE SUBSYSTEM IN
        ('HEALTH');

    Você pode selecionar entre os seguintes subsistemas:

    • HEALTH
    • InnoDB
    • RAPID
    • Repl
    • Server
  4. (Opcional) Para filtrar o subsistema HEALTH por um intervalo de 2 horas, execute o seguinte comando:
    SELECT * FROM performance_schema.error_log WHERE SUBSYSTEM = 'HEALTH' AND 
    LOGGED > DATE_SUB(NOW(),INTERVAL 2 HOUR);
  5. (Opcional) Para recuperar uma contagem de quantas instâncias de um erro específico ocorreram em um único dia, execute o seguinte 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 uma contagem de quantas instâncias de um erro específico ocorreram em uma semana, execute o seguinte 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);
Sem usar filtros, você obtém uma resposta semelhante à seguinte, que exibe o horário em que o evento ocorreu, o ID do encadeamento, a prioridade, o código de erro (se houver), o subsistema e o texto que descreve o 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 ***************************
..............................
..............................