general_log = 1
general_log_file = /var/log/mysql/mysql_query.log
記錄所有連線與 SQL,調試用,**生產環境建議關閉**,極度消耗 IO。
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql_slow.log
long_query_time = 1 -- 超過 1 秒記錄 (預設 10 秒)
log_queries_not_using_indexes = 1 -- 記錄未用索引的查詢
min_examined_row_limit = 100 -- 忽略掃描行數 < 100 的查詢
server-id = 1
log_bin = /var/log/mysql/mysql-bin
binlog_format = ROW -- ROW/STATEMENT/MIXED,建議 ROW
binlog_expire_logs_seconds = 604800 -- 7 天自動清理 (8.0+)
max_binlog_size = 100M
log_error = /var/log/mysql/error.log
log_warnings = 2 -- 記錄更多警告 (連線中斷等)
[mysqld]
# 一般查詢日誌
general_log = 1
general_log_file = "E:/mysqllog/mysql_query.log"
# 慢查詢日誌
slow_query_log = 1
slow_query_log_file = "E:/mysqllog/mysql_slow.log"
long_query_time = 1
# 二進制日誌
server-id = 1
log_bin = "E:/mysqllog/mysql-bin"
binlog_format = ROW
# 錯誤日誌
log_error = "E:/mysqllog/error.log"
修改後**必須重啟服務**:net stop mysql & net start mysql 或重啟服務。
mysql> SHOW VARIABLES LIKE '%log%';
+---------------------------------+----------------------------------+
| Variable_name | Value |
+---------------------------------+----------------------------------+
| general_log | ON |
| general_log_file | /var/log/mysql/mysql_query.log |
| slow_query_log | ON |
| slow_query_log_file | /var/log/mysql/mysql_slow.log |
| log_bin | ON |
| log_bin_basename | /var/log/mysql/mysql-bin |
| log_error | /var/log/mysql/error.log |
+---------------------------------+----------------------------------+
long_query_time=1,定期 pt-query-digest 分析。expire_logs_days 自動清理。SET GLOBAL general_log=ON; 動態開關。