28

I want to check the log in MySQL to see the queries that are being run by my application. How can I do this? I am using XAMPP and the directory to MySQL is C:\xampp\mysql.

This is what I get when I do show variables like '%log%';

mysql> show variables like '%log%'; +---------------------------------+------------------------------------+ | Variable_name | Value | +---------------------------------+------------------------------------+ | back_log | 50 | | binlog_cache_size | 32768 | | binlog_format | STATEMENT | | expire_logs_days | 0 | | general_log | OFF | | general_log_file | C:/xampp/mysql/data/mysql.log | | innodb_flush_log_at_trx_commit | 1 | | innodb_locks_unsafe_for_binlog | OFF | | innodb_log_buffer_size | 8388608 | | innodb_log_file_size | 5242880 | | innodb_log_files_in_group | 2 | | innodb_log_group_home_dir | C:\xampp\mysql\data\ | | innodb_mirrored_log_groups | 1 | | log | OFF | | log_bin | OFF | | log_bin_trust_function_creators | OFF | | log_bin_trust_routine_creators | OFF | | log_error | C:\xampp\mysql\data\mysql.err | | log_output | FILE | | log_queries_not_using_indexes | OFF | | log_slave_updates | OFF | | log_slow_queries | OFF | | log_warnings | 1 | | max_binlog_cache_size | 4294963200 | | max_binlog_size | 1073741824 | | max_relay_log_size | 0 | | relay_log | | | relay_log_index | | | relay_log_info_file | relay-log.info | | relay_log_purge | ON | | relay_log_space_limit | 0 | | slow_query_log | OFF | | slow_query_log_file | C:/xampp/mysql/data/mysql-slow.log | | sql_log_bin | ON | | sql_log_off | OFF | | sql_log_update | ON | | sync_binlog | 0 | +---------------------------------+------------------------------------+ 37 rows in set (0.00 sec) 
2
  • Is this what you are looking for ? stackoverflow.com/questions/9871718/… Commented Mar 26, 2012 at 12:06
  • Your general log file is here: C:/xampp/mysql/data/mysql.log, error-log file is here: C:\xampp\mysql\data\mysql.err and I think query logs are here: C:/xampp/mysql/data/mysql-slow.log. Commented Mar 26, 2012 at 12:06

5 Answers 5

33

Enable general query log by the following query in mysql command line

SET GLOBAL general_log = 'ON'; 

Now open C:/xampp/mysql/data/mysql.log and check query log

If it fails, open your my.cnf file. For windows its my.ini file and enable it there. Just make sure its in the [mysqld] section

[mysqld] general_log = 1 

Note: In xampp my.ini file can be either found in xampp\mysql or in c:\windows directory

Sign up to request clarification or add additional context in comments.

8 Comments

It says: ERROR 1227 (42000): Access denied; you need the SUPER privilege for this operation on
@JohnathanAu you need to be root(mysql root user) to do this.
Hey, do you mean root for the PC? How do I do that?
You need to login with username "root"
@JohnathanAu update your my.ini file then. See the update in my answer.
|
1

Set up the General Query Log.

Comments

1

Its given on OFFICIAL MYSQL website.

SET GLOBAL general_log = 'ON'; 

You can also use custom path:

[mysqld] # Set Slow Query Log long_query_time = 1 slow_query_log = 1 slow_query_log_file = "C:/slowquery.log" #Set General Log log = "C:/genquery.log" 

Comments

0

Seems like the general query log is the file that you need. A good introduction to this is at http://dev.mysql.com/doc/refman/5.1/en/query-log.html

Comments

0

For me, general_log didn't worked. But adding this to my.ini worked

[mysqld] log-output=FILE slow_query_log = 1 slow_query_log_file = "d:/temp/developer.log" 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.