Как войти все 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 Server, используя mysql 5.6.7. Единственное, что мне пришлось изменить, - это пути к tje-файлам, в моем случае, 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";
Бойкот SE для Моники Челлио
источник
5

Поместите эти две строки в my.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

являются синонимами!

Verace
источник
Для меня я должен был использовать «general_log = 1» вместо «general_log = on».
GuyPaddock
@GuyPaddock, какую версию MySQL вы используете?
Vérace