22

I am using Mysql 5.6.12 under Wamp server environment. Now I want to log All queries into ".log" file, the queries which are running by PHP or from PHPMyAdmin, I want to log them...

Qazi
  • 323
  • 1
  • 2
  • 8

3 Answers3

23
[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

Note that enabling general_log on a production server has overhead you should avoid it. You can check problematic queries from slow log.

Mahesh Patil
  • 3,078
  • 2
  • 17
  • 23
14

Since this is the type of thing you probably only want to do temporarily, it may be useful to do this from the shell instead of via the config file:

> 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";
Xiong Chiamiov
  • 260
  • 3
  • 7
7

Put these two lines in my.cnf.

[mysqld]

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

This will log all queries to the server, from any source, not just PHP/PHPMyAdmin.

Be careful though - enabling the general log can place a heavy load on your server. To be used sparingly for short periods/debugging only.

The documentation is available here. Fro there:

To disable or enable the general query log or change the log file name at runtime, use the global general_log and general_log_file system variables. Set general_log to 0 (or OFF) to disable the log or to 1 (or ON) to enable it. Set general_log_file to specify the name of the log file.

So,

general_log     = on

and

general_log     = 1

are synonyms!

Vérace
  • 30,923
  • 9
  • 73
  • 85