Comment voir les fichiers journaux dans MySQL?
J'ai lu que le serveur Mysql crée un fichier journal dans lequel il tient un registre de toutes les activités - comme quand et quel type de requêtes à exécuter.
Quelqu'un peut-il me dire où il existe dans mon système? Comment puis-je le lire?
En gros, j'ai besoin de sauvegarder la base de données avec des entrées [sauvegarde entre deux dates] donc, je pense que j'ai besoin d'utiliser fichier journal ici, c'est pourquoi je veux le faire...
Je pense que ce journal doit être assuré en quelque sorte parce que les informations sensibles telles que les noms d'utilisateur et le mot de passe peuvent être enregistrés [si aucune requête besoin de cette]; de sorte qu'il peut être garanti, n'est pas facilement en mesure d'être vu?
J'ai un accès root sur le système, comment puis-je voir le journal?
Lorsque j'essaie d'ouvrir le fichier /var/log/mysql.journal il est vide.
C'est mon fichier de config:
[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
Vous devez vous connecter pour publier un commentaire.
Voici une façon simple de les activer. Mysql nous avons besoin de voir souvent 3 journaux qui sont les plus nécessaires lors de tout projet de développement.
The Error Log
. Il contient des informations sur les erreurs qui se produisent lors dele serveur est en cours d'exécution (également server start et stop)
The General Query Log
. Il s'agit d'un enregistrement de ce que mysqld estfaire (connexion, déconnexion, requêtes)
The Slow Query Log
. Il se compose de "ralentir" les instructions SQL (commeson nom l'indique).
Par défaut, aucun fichier journal n'est activée dans MYSQL. Toutes les erreurs seront affichés dans le syslog.(/var/log/syslog)
Pour les Activer, il suffit de suivre les étapes ci-dessous
etape 1: Aller vers ce fichier(/etc/mysql/conf.d/mysqld_safe_syslog.cnf) et de supprimer ou commenter ceux de la ligne.
etape 2: Aller à mysql fichier conf(/etc/mysql/my.cnf ) et ajoutez les lignes suivantes
Pour activer le journal des erreurs ajouter la suite
Pour permettre général journal de la requête ajouter la suite
Pour activer le Slow Query Log ajouter la suite
etape 3: enregistrez le fichier et redémarrez mysql à l'aide de commandes suivantes
Pour activer les logs lors de l'exécution, de connexion de client mysql (mysql -u root -p ) et donner:
Enfin une chose que je voudrais mentionner est j'ai lu cela sur un blog. Merci. Il fonctionne pour moi.
Cliquez sur ici à visiter le blog
/etc/mysql/conf.d/mysqld_safe_syslog.cnf
seulement si le journal d'erreur est activé. Cependant, cette réponse comme c'est actuellement écrit semble le suggérer pour l'ouverture de la session.slow_query_log = 1;
,slow_query_log_file = /var/log/mysql/mysql-slow-query.log
etlong_query_time = 60
sous [mysqld]. Quand j'essaie de démarrer avec votre configuration, le serveur commence, mais lentement lentement et avec des erreurs. J'ai vraiment suppose que les versions diffèrent et dans les versions ultérieures oracle voulait unifier la variable de noms. Aussi: à mon humble avis 2 secondes n'est pas que long.touch /var/log/mysqld.log
, puischown mysql /var/log/mysqld.log
. (Je suis en utilisant un vieux MySQL tr / min dans un conteneur docker)Vous devez activer la journalisation des requêtes mysql.
1.éditez le fichier /etc/my.cnf
2.redémarrez l'ordinateur ou le service mysqld
3.ouvrez phpmyadmin/toute application qui utilise mysql/mysql console et exécutez une requête
4.cat /tmp/mysql.journal ( vous devriez voir la requête )
MySQL journaux sont déterminés par les variables globales telles que:
log_error
pour le journal des messages d'erreur;general_log_file
pour le grand journal de requête de fichier (s'il est activé pargeneral_log
);slow_query_log_file
pour la requête lente fichier journal (s'il est activé parslow_query_log
);Pour voir les paramètres et de leur emplacement, exécutez cette commande shell:
Pour imprimer la valeur de log d'erreur, exécutez cette commande dans le terminal:
Pour lire le contenu du fichier journal des erreurs en temps réel, exécutez:
Remarque: appuyez sur Contrôle-C a la fin de
Lorsque le général log est activé, essayez de:
À utiliser
mysql
avec le mot de passe d'accès, ajouter-p
ou-pMYPASS
paramètre. Pour le garder en souvenir, vous pouvez le configurer dans votre~/.my.cnf
, par exempleDonc ça va être mémorisé pour la prochaine fois.
Dans mon (j'ai LAMPE installé) /etc/mysql/ma.cnf fichier que j'ai mis à la suite, lignes commentées dans la section [mysqld]:
J'ai dû ouvrir ce fichier en tant que super-utilisateur, avec le terminal:
(Je préfère utiliser Geany, au lieu de gedit ou VI, il n'a pas d'importance)
Je viens de décommenté eux & enregistrer le fichier puis restatt mysql avec
Exécuter plusieurs requêtes, ouvrez le fichier ci-dessus (/var/log/mysql/mysql.journal) et le journal y était 🙂
Du manuel de référence de MySQL:
Vérifier
/var/lib/mysql
dossier.sudo -s
alors essayez d'aller à mysql dossier.Pour compléter loyolas'répondre, il est utile de mentionner que, comme de MySQL 5.1
log_slow_queries
est obsolète et est remplacé parslow-query-log
À l'aide de
log_slow_queries
sera la cause de votreservice mysql restart
ouservice mysql start
à l'échecOutre les réponses ci-dessus, vous pouvez passer en paramètres de ligne de commande pour le processus mysqld pour les options de journalisation au lieu de modifier manuellement votre fichier conf. Par exemple, pour activer la journalisation général et spécifier un fichier:
Confirmant d'autres réponses ci-dessus,
mysqld --help --verbose
vous donne les valeurs de la conf fichier (donc fonctionnant avec des options de ligne de commande général-journal est FAUX); considérant quemysql -se "SHOW VARIABLES" | grep -e log_error -e general_log
donne:Utilisation légèrement plus compact de la syntaxe pour le journal des erreurs: