How to Log All mysql queries into log file?

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


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";

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!

Tags:

Mysql

Log