Visualisation du journal des erreurs

Affichez performance_schema.error_log qui contient des erreurs, des avertissements et des mises à jour de statut à partir de l'outil de surveillance de l'état, du moteur de stockage InnoDB, du moteur secondaire RAPID, du canal de réplication et de MySQL Server.

Utilisation d'un client de ligne de commande

Utilisez un client de ligne de commande tel que le client MySQL ou le shell MySQL pour afficher performance_schema.error_log.

Cette tâche requiert les éléments suivants :
  • Système de base de données en cours d'exécution.
  • Système de base de données connecté à l'aide de MySQL Shell, du client MySQL ou d'un client de ligne de commande de votre choix.
Pour afficher performance_schema.error_log à l'aide de MySQL Shell ou du client MySQL, procédez comme suit :
Remarque

performance_schema.error_log est uniquement disponible en mode d'exécution SQL.
  1. Exécutez la commande suivante :
    SELECT * FROM performance_schema.error_log;
  2. (Facultatif) Pour filtrer les journaux afin d'afficher uniquement les erreurs, exécutez la commande suivante :
    SELECT * FROM performance_schema.error_log WHERE PRIO='error'; 
  3. (Facultatif) Pour filtrer les journaux afin d'afficher uniquement les erreurs du sous-système HEALTH, exécutez la commande suivante :
    SELECT * FROM performance_schema.error_log WHERE SUBSYSTEM IN
        ('HEALTH');

    Vous avez le choix parmi les sous-systèmes suivants :

    • HEALTH
    • InnoDB
    • RAPID
    • Repl
    • Server
  4. (Facultatif) Pour filtrer sur le sous-système HEALTH et un intervalle de 2 heures, exécutez la commande suivante :
    SELECT * FROM performance_schema.error_log WHERE SUBSYSTEM = 'HEALTH' AND 
    LOGGED > DATE_SUB(NOW(),INTERVAL 2 HOUR);
  5. (Facultatif) Pour extraire le nombre de fois où une erreur spécifique est survenue en une seule journée, exécutez la commande suivante :
    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. (Facultatif) Pour extraire le nombre de fois où une erreur spécifique est survenue en une semaine, exécutez la commande suivante :
    SELECT DAY(LOGGED), COUNT(*) FROM error_log WHERE ERROR_CODE = 'MY-010914' AND 
    LOGGED > DATE_SUB(NOW(),INTERVAL 1 WEEK) GROUP BY DAY(LOGGED);
Sans utiliser de filtres, vous obtenez une réponse semblable à la suivante, qui indique l'heure à laquelle l'événement s'est produit, l'ID de thread, la priorité, le code d'erreur (le cas échéant), le sous-système et le texte décrivant l'événement :
*************************** 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 ***************************
..............................
..............................