Visualizzazione del log degli errori

Visualizzare performance_schema.error_log che contiene errori, avvertenze e aggiornamenti di stato da Health Monitor, motore di storage InnoDB, motore secondario RAPID, canale di replica e MySQL Server.

Uso di un client dalla riga di comando

Utilizzare un client della riga di comando come il client MySQL o la shell MySQL per visualizzare performance_schema.error_log.

Questa attività richiede quanto segue:
  • Sistema DB in esecuzione.
  • Un sistema DB connesso utilizzando la shell MySQL, il client MySQL o qualsiasi client della riga di comando di tua scelta.
Per visualizzare performance_schema.error_log utilizzando la shell MySQL o il client MySQL, effettuare le operazioni riportate di seguito.
Nota

performance_schema.error_log è disponibile solo nella modalità di esecuzione SQL.
  1. Eseguire il comando riportato di seguito:
    SELECT * FROM performance_schema.error_log;
  2. (Facoltativo) Per filtrare i log in modo da visualizzare solo gli errori, eseguire il comando seguente:
    SELECT * FROM performance_schema.error_log WHERE PRIO='error'; 
  3. (Facoltativo) Per filtrare i log in modo che mostrino solo gli errori del sottosistema HEALTH, eseguire il comando seguente:
    SELECT * FROM performance_schema.error_log WHERE SUBSYSTEM IN
        ('HEALTH');

    È possibile selezionare uno dei seguenti sottosistemi:

    • HEALTH
    • InnoDB
    • RAPID
    • Repl
    • Server
  4. (Facoltativo) Per filtrare il sottosistema HEALTH in un intervallo di tempo di 2 ore, eseguire il comando seguente:
    SELECT * FROM performance_schema.error_log WHERE SUBSYSTEM = 'HEALTH' AND 
    LOGGED > DATE_SUB(NOW(),INTERVAL 2 HOUR);
  5. (Facoltativo) Per recuperare il conteggio del numero di istanze di un errore specifico verificatesi in un solo giorno, eseguire il comando seguente:
    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. (Facoltativo) Per recuperare il conteggio del numero di istanze di un errore specifico verificatesi in una settimana, eseguire il comando seguente:
    SELECT DAY(LOGGED), COUNT(*) FROM error_log WHERE ERROR_CODE = 'MY-010914' AND 
    LOGGED > DATE_SUB(NOW(),INTERVAL 1 WEEK) GROUP BY DAY(LOGGED);
Senza utilizzare alcun filtro, si ottiene una risposta simile alla seguente, che visualizza l'ora in cui si è verificato l'evento, l'ID thread, la priorità, il codice di errore (se presente), il sottosistema e il testo che descrive l'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 ***************************
..............................
..............................