J'ai lu que le serveur Mysql crée un fichier journal dans lequel il conserve un enregistrement de toutes les activités - comme quand et quelles requêtes s'exécutent.
Quelqu'un peut-il me dire où il existe dans mon système? Comment puis-je le lire?
Fondamentalement, je dois sauvegarder la base de données avec une entrée différente [sauvegarde entre deux dates] donc je pense que je dois 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 le mot de passe peuvent être enregistrées [si une requête l'exige]; alors peut-il être sécurisé, pas facilement visible?
J'ai un accès root au système, comment puis-je voir le journal?
Lorsque j'essaye d'ouvrir /var/log/mysql.log, il est vide.
Ceci est 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
/etc/mysql/conf.d/mysqld_safe_syslog.cnf
uniquement si le journal des erreurs doit être activé. Cependant, cette réponse telle qu'elle est actuellement écrite semble la suggérer pour n'importe quel journal.slow_query_log = 1;
,slow_query_log_file = /var/log/mysql/mysql-slow-query.log
etlong_query_time = 60
sous [mysqld]. Lorsque j'essaye de démarrer avec votre configuration, le serveur démarre, mais lentement et avec des erreurs. Je suppose vraiment que les versions diffèrent et dans les versions ultérieures, oracle voulait unifier les noms de variables. Aussi: IMHO 2 secondes n'est pas si long.Vous devez activer la journalisation des requêtes dans mysql.
éditer /etc/my.cnf
redémarrez l'ordinateur ou le service mysqld
ouvrez phpmyadmin / toute application qui utilise la console mysql / mysql et exécutez une requête
cat /tmp/mysql.log
(vous devriez voir la requête)la source
Les journaux MySQL sont déterminés par les variables globales telles que:
log_error
pour le journal des messages d'erreur;general_log_file
pour le fichier journal des requêtes générales (si activé pargeneral_log
);slow_query_log_file
pour le fichier journal des requêtes lentes (si activé parslow_query_log
);Pour voir les paramètres et leur emplacement, exécutez cette commande shell:
Pour imprimer la valeur du journal des erreurs, exécutez cette commande dans le terminal:
Pour lire le contenu du fichier journal des erreurs en temps réel, exécutez:
Remarque: Hit Control- une Cfois terminé
Lorsque le journal général est activé, essayez:
À utiliser
mysql
avec l'accès par mot de passe, ajoutez-p
ou-pMYPASS
paramètre. Pour le garder en mémoire, vous pouvez le configurer dans votre~/.my.cnf
, par exempleOn s'en souviendra donc pour la prochaine fois.
la source
Dans mon fichier (j'ai installé LAMP) / etc / mysql /my.cnf, j'ai trouvé les lignes commentées suivantes dans la section [mysqld]:
J'ai dû ouvrir ce fichier en tant que super utilisateur, avec terminal:
(Je préfère utiliser Geany au lieu de gedit ou VI, cela n'a pas d'importance)
Je viens de les décommenter et d'enregistrer le fichier, puis de relancer mysql avec
Exécutez plusieurs requêtes, ouvrez le fichier ci-dessus (/var/log/mysql/mysql.log) et le journal était là :)
la source
À partir du manuel de référence MySQL:
Vérifiez le
/var/lib/mysql
dossier.la source
sudo -s
puis essayez d'aller dans le dossier mysql.Pour compléter la réponse de loyola , il convient de mentionner que depuis MySQL 5.1
log_slow_queries
est obsolète et est remplacé parslow-query-log
L'utilisation
log_slow_queries
provoquera votreservice mysql restart
ouservice mysql start
à l' échecla source
la source
En plus des réponses ci-dessus, vous pouvez transmettre des paramètres de ligne de commande au processus mysqld pour les options de journalisation au lieu de modifier manuellement votre fichier de configuration. Par exemple, pour activer la journalisation générale et spécifier un fichier:
En confirmant les 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 quemysql -se "SHOW VARIABLES" | grep -e log_error -e general_log
donne:Utilisez une syntaxe légèrement plus compacte pour le journal des erreurs:
la source