Comment enregistrer toutes les requêtes mysql dans un fichier journal?


17

J'utilise Mysql 5.6.12 sous environnement de serveur Wamp. Maintenant, je veux enregistrer toutes les requêtes dans le fichier ".log", les requêtes qui sont exécutées par PHP ou à partir de PHPMyAdmin, je veux les enregistrer ...

Réponses:


20
[mysqld]
# Set Slow Query Log
long_query_time = 1
slow_query_log = 1
slow_query_log_file = /usr/log/slowquery.log
log_queries_not_using_indexes = 1

#Set General Log
general_log = on
general_log_file=/usr/log/general.log

Notez que l'activation general_logsur un serveur de production a une surcharge, vous devez l'éviter. Vous pouvez vérifier les requêtes problématiques à partir de slow log.


1
Pour moi, j'ai dû utiliser "general_log = 1" au lieu de "general_log = on".
GuyPaddock

A travaillé sur Wamp Server, en utilisant mysql 5.6.7. La seule chose que j'ai dû changer était les chemins d'accès aux fichiers tje, dans mon cas, C: \ wamp \ logs \ mysql_query.log.
Mário Rodrigues

Pourquoi toutes ces valeurs de configuration? Juste general_loget general_log_filec'est suffisant.
laurent

8

Comme c'est le type de chose que vous ne voulez probablement faire que temporairement, il peut être utile de le faire à partir du shell plutôt que via le fichier de configuration:

> set global general_log_file = "/var/log/mysql/queries.log";
> set global general_log = "ON";
[wait some time, hit some pages, whatever]
> set global general_log = "OFF";

5

Mettez ces deux lignes dans my.cnf.

[mysqld]

general_log     = on
general_log_file=/users/ugrad/linehanp/mydb/logfile.txt

Cela enregistrera toutes les requêtes sur le serveur, à partir de n'importe quelle source, pas seulement PHP / PHPMyAdmin.

Soyez prudent cependant - l'activation du journal général peut placer une lourde charge sur votre serveur. À utiliser avec parcimonie pour de courtes périodes / débogage uniquement.

La documentation est disponible ici . Là-bas:

Pour désactiver ou activer le journal général des requêtes ou modifier le nom du fichier journal lors de l'exécution, utilisez les variables système globales general_log et general_log_file. Définissez general_log sur 0 (ou OFF) pour désactiver le journal ou sur 1 (ou ON) pour l'activer. Définissez general_log_file pour spécifier le nom du fichier journal.

Donc,

general_log     = on

et

general_log     = 1

sont synonymes!


Pour moi, j'ai dû utiliser "general_log = 1" au lieu de "general_log = on".
GuyPaddock

@GuyPaddock quelle version de MySQL utilisez-vous?
Vérace
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.