219 votes

Comment consulter les fichiers journaux dans MySQL ?

J'ai lu que le serveur Mysql crée un fichier journal dans lequel il enregistre toutes les activités - comme le moment et le type d'exécution des requêtes.

Quelqu'un peut-il me dire où il se trouve dans mon système ? Comment puis-je le lire ?

En fait, j'ai besoin de sauvegarder la base de données avec des entrées différentes [sauvegarde entre deux dates], donc je pense que j'ai besoin d'utiliser le fichier journal ici, c'est pourquoi je veux le faire...

Je pense que ce journal doit être sécurisé d'une manière ou d'une autre, car des informations sensibles telles que les noms d'utilisateur et les mots de passe peuvent être enregistrés [si une requête l'exige] ; il est donc possible de le sécuriser et de le rendre difficilement visible.

J'ai un accès Root au système, comment puis-je voir le journal ?

Lorsque j'essaie d'ouvrir le fichier /var/log/mysql.log, il est vide.

Voici mon fichier de configuration :

[client]
port        = 3306
socket      = /var/run/mysqld/mysqld.sock

[mysqld_safe]
socket      = /var/run/mysqld/mysqld.sock
nice        = 0

[mysqld]
log = /var/log/mysql/mysql.log 
binlog-do-db=zero

user        = mysql
socket      = /var/run/mysqld/mysqld.sock
port        = 3306
basedir     = /usr
datadir     = /var/lib/mysql
tmpdir      = /tmp
skip-external-locking

bind-address        = 127.0.0.1
#
# * Fine Tuning
#
key_buffer      = 16M
max_allowed_packet  = 16M
thread_stack        = 192K
thread_cache_size       = 8

general_log_file        = /var/log/mysql/mysql.log
general_log             = 1

6voto

felecian aidan Points 140

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

  1. Définir le chemin d'accès au fichier (vous pouvez remplacer general.log par le nom de fichier de votre choix).

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

  1. Définir le format du fichier journal

SET GLOBAL log_output = 'FILE' ;

  1. Activer le journal général du serveur

SET GLOBAL general_log = 'ON' ;

  1. Vérifiez vos configurations dans les variables de configuration globales.

SHOW VARIABLES LIKE "general_log%" ;

This will give results as this

  1. Entrer exit de quitter la ligne de commande de MySQL et de poursuivre vos requêtes en

tail -f /var/log/mysql/general.log

ou

less /var/log/mysql/general.log

  1. Pour désactiver le journal général du serveur

SET GLOBAL general_log = 'OFF' ;

4voto

Oussama Romdhane Points 127

Compléter loyola Il convient de préciser qu'à partir de la version 5.1 de MySQL log_slow_queries est obsolète et est remplacé par slow-query-log

Utilisation log_slow_queries entraînera votre service mysql restart o service mysql start d'échouer

3voto

br3w5 Points 3430

En plus des réponses ci-dessus, vous pouvez passer des paramètres de ligne de commande au processus mysqld pour les options de journalisation au lieu d'éditer manuellement votre fichier conf. Par exemple, pour activer la journalisation générale et spécifier un fichier :

mysqld --general-log --general-log-file=/var/log/mysql.general.log

Confirmation des autres réponses ci-dessus, mysqld --help --verbose vous donne les valeurs du fichier conf (donc l'exécution avec les options de ligne de commande general-log est FALSE) ; alors que mysql -se "SHOW VARIABLES" | grep -e log_error -e general_log donne :

general_log     ON
general_log_file        /var/log/mysql.general.log

Utiliser une syntaxe légèrement plus compacte pour le journal des erreurs :

mysqld --general-log --general-log-file=/var/log/mysql.general.log --log-error=/var/log/mysql.error.log

1voto

Test Points 19
shell> mysqladmin flush-logs

shell> mv host_name.err-old backup-directory

0voto

Nicolas Points 1699

Affichez le journal et vous verrez la sortie de mysqld

journalctl -f

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X