Affichage du journal des erreurs

Consultez performance_schema.error_log qui contient des erreurs, des avertissements et des mises à jour de statut à partir du moniteur d'é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 MySQL Client ou MySQL Shell pour voir performance_schema.error_log.

Cette tâche nécessite 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 l'interpréteur de commandes MySQL, du client MySQL ou de tout client de ligne de commande de votre choix.
Procédez de la façon suivante pour consulter performance_schema.error_log à l'aide de l'interpréteur de commandes MySQL ou du client MySQL :
Note

performance_schema.error_log n'est disponible qu'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 de consulter uniquement les erreurs du sous-système HEALTH, exécutez la commande suivante :
    SELECT * FROM performance_schema.error_log WHERE SUBSYSTEM IN
        ('HEALTH');

    Vous pouvez choisir parmi les sous-systèmes suivants :

    • HEALTH
    • InnoDB
    • RAPID
    • Repl
    • Server
  4. (Facultatif) Pour filtrer sur le sous-système HEALTH sur 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 d'instances d'une erreur spécifique survenues en un seul jour, 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 d'instances d'une erreur spécifique survenue au cours d'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 similaire à la suivante, qui affiche l'heure à laquelle l'événement s'est produit, l'ID unité d'exécution, 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 ***************************
..............................
..............................