GNU/Linux >> Tutoriels Linux >  >> Linux

Comment activer la journalisation des requêtes MySQL/MariaDB

Dans ce guide court et facile à suivre, nous expliquons comment activer la journalisation des requêtes MySQL/MariaDB et enregistrer les requêtes dans un fichier.

Lors de l'utilisation d'une base de données, il arrive souvent que les développeurs souhaitent savoir ce qui se passe dans les coulisses. Que ce soit pour le dépannage, le réglage des performances ou par pure curiosité.

Les journaux de requêtes générales restent l'une des sources les plus populaires d'informations d'audit et de diagnostic dans les bases de données MySQL/MariaDB. Une fois la journalisation activée, le serveur de base de données écrira des informations dans le fichier journal lorsque les clients se connecteront ou se déconnecteront, et il consignera chaque instruction SQL.

Cependant, gardez à l'esprit que l'activation du journal des requêtes générales affecte les performances de MySQL/MariaDB. Cela réduira le débit d'environ 13 % et augmentera le temps de réponse du serveur MySQL/MariaDB d'environ 17 %.

Alors sans plus tarder, commençons car le processus est assez simple.

Activer la journalisation générale des requêtes MySQL/MariaDB

Dans MySQL/MariaDB, le journal général des requêtes est désactivé par défaut.

1. Entrez dans l'outil de ligne de commande du serveur MySQL/MariaDB en tant que root :

mysql -u root -p

2. Définissez le chemin du fichier journal général sur /var/logs/mysql/general-query.log en exécutant la requête ci-dessous.

SET GLOBAL general_log_file='/var/log/mysql/general-query.log';

Par défaut, le journal des requêtes générales est écrit dans le même répertoire de données qui contient les sous-répertoires de la base de données eux-mêmes (généralement /var/lib/mysql ) et le nom du fichier journal est par défaut le nom d'hôte. Cependant, comme vous pouvez le voir, cela peut être modifié.

3. Activez le journal général du serveur :

SET GLOBAL general_log = 1;

Vérifions à nouveau l'état général du journal des requêtes MySQL/MariaDB :

SHOW VARIABLES LIKE "general_log%";

C'est ça. À partir de là, vous pouvez faire quelque chose de similaire à sudo tail -f sur le general-query.log fichier à partir de la ligne de commande et gardez un œil sur les choses.

Une fois que vous avez terminé votre inspection, vous pouvez désactiver la journalisation des requêtes MySQL/MariaDB comme suit :

SET GLOBAL general_log = 0;

Il n'est certainement pas souhaitable d'avoir activé la journalisation sur un serveur de production. Soyez donc prudent avec cela, le fichier journal peut devenir volumineux assez rapidement.

Si vous ne souhaitez pas exécuter les requêtes directement, vous pouvez toujours activer la journalisation des requêtes MySQL/MariaDB en modifiant directement le fichier de configuration MySQL/MariaDB, mais gardez à l'esprit que cette approche nécessite un redémarrage du serveur de base de données.

Conclusion

Le journal général des requêtes MySQL/MariaDB peut être très utile lorsque vous suspectez une erreur dans un client et que vous voulez savoir exactement ce que le client a envoyé à la base de données. Donc, si vous avez un bogue ou un problème avec la base de données, l'un des moyens de retracer le problème en activant ce journal et de vérifier ce qui se passe.

Vous pouvez en savoir plus sur l'activation du journal général des requêtes MySQL/MariaDB ici et ici.


Linux
  1. Comment arrêter un processus dans MySQL

  2. Comment activer l'option de débogage dans le logiciel OpenCA

  3. Comment activer le journal des requêtes lentes pour MySQL

  4. Comment remplacer MySQL par MariaDB sur CentOS 6

  5. Comment activer la journalisation des requêtes liées pour savoir qui interroge un serveur de noms

Comment exporter les résultats de la requête MySQL au format CSV sous Linux

Comment se connecter en tant que root dans Mysql ?

Comment installer MySQL/MariaDB sur Debian 11

Comment changer/réinitialiser le mot de passe racine MySQL ou MariaDB

Comment activer la journalisation étendue dans Exim ?

Comment créer une configuration Rsyslog de journalisation centralisée