MySQLでログをチェックして、アプリケーションで実行されているクエリを確認したい。これどうやってするの? XAMPPを使用しており、MySQLのディレクトリはC:\ xampp\mysqlです。
これは私が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)
Mysqlコマンドラインで次のクエリを実行して、一般的なクエリログを有効にします
SET GLOBAL general_log = 'ON';
開催中 C:/xampp/mysql/data/mysql.log
およびクエリログの確認
失敗した場合は、my.cnf
ファイル。 Windowsの場合はmy.ini
ファイルを作成し、そこで有効にします。 [mysqld]
セクション
[mysqld]
general_log = 1
注:xampp my.ini
ファイルは、xampp\mysql
またはc:\windows
ディレクトリ
公式のMYSQL Webサイトに記載されています。
SET GLOBAL general_log = 'ON';
カスタムパスを使用することもできます。
[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"
一般クエリログ を設定します。
私にとっては、general_logは機能しませんでした。しかし、これをmy.iniに追加するとうまくいきました
[mysqld]
log-output=FILE
slow_query_log = 1
slow_query_log_file = "d:/temp/developer.log"
一般的なクエリログが必要なファイルのようです。これの良い紹介は http://dev.mysql.com/doc/refman/5.1/en/query-log.html にあります。