Як увійти всі запити mysql у файл журналу?


17

Я використовую Mysql 5.6.12 в середовищі сервера Wamp. Тепер я хочу увійти Усі запити у файл ".log", запити яких виконуються PHP або від PHPMyAdmin, я хочу їх увійти ...

Відповіді:


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

Зауважте, що включення general_logна виробничому сервері має накладні витрати, вам слід цього уникати. Ви можете перевірити проблемні запити з slow log.


1
Для мене мені довелося використовувати "general_log = 1" замість "general_log = on".
GuyPaddock

Працював на сервері Wamp, використовуючи mysql 5.6.7. Єдине, що мені довелося змінити - це шляхи до інших файлів, у моєму випадку - C: \ wamp \ logs \ mysql_query.log.
Маріо Родрігес

Чому всі ці значення конфігурації? Просто general_logі general_log_fileдосить.
Лоран

8

Оскільки це тип речі, який ви, мабуть, хочете робити лише тимчасово, може бути корисним зробити це з оболонки, а не через конфігураційний файл:

> 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

Помістіть ці два рядки у мій.cnf.

[mysqld]

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

Це записуватиме всі запити на сервер із будь-якого джерела, а не лише PHP / PHPMyAdmin.

Але будьте обережні - якщо ввімкнути загальний журнал, ви можете навантажити ваші сервери. Використовуватись економно для коротких періодів / налагодження.

Документація доступна тут . Ось тут:

Щоб вимкнути або ввімкнути загальний журнал запитів або змінити ім’я файла журналу під час виконання, використовуйте загальні системні змінні general_log та general_log_file. Встановіть General_log на 0 (або OFF), щоб вимкнути журнал, або на 1 (або ON), щоб увімкнути його. Встановіть файл General_log_file, щоб вказати ім'я файлу журналу.

Так,

general_log     = on

і

general_log     = 1

є синонімами!


Для мене мені довелося використовувати "general_log = 1" замість "general_log = on".
GuyPaddock

@GuyPaddock, яку версію MySQL ви використовуєте?
Vérace
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.