| 日誌 | 啟動選項 | 用途 | 格式 |
|---|---|---|---|
| General Query Log | --log[=file] | 所有連線/查詢審計 | 文本 |
| Slow Query Log | --log-slow-queries[=file] --long-query-time=10 | 慢查詢分析優化 | 文本 |
| Binary Log | --log-bin[=file] --log-bin-index=file | 復制、時間點恢復 | 二進制 |
| Error Log | --log-error[=file] (mysqld_safe 管理) | 啟動/關閉/錯誤堆疊 | 文本 |
舊版 --log-update (Update Log) 已棄用,合併入 Binlog。
#!/bin/bash
# rotate_log.sh logfile
logfile=$1
for i in 7 6 5 4 3 2 1; do
[ -f "$logfile.$i" ] && mv "$logfile.$i" "$logfile.$((i+1))"
done
mv "$logfile" "$logfile.1"
mysqladmin -u flush_user -pflush_pass flush-logs
flush_user 僅擁有 RELOAD 權限。logrotate 亦可管理,RPM 安裝含 /etc/logrotate.d/mysql。#!/usr/bin/perl -w
# expire_log.pl logfile_pattern
$max_age = 7; # 天
foreach $file (@ARGV) {
unlink $file if -e $file && -M $file >= $max_age;
}
# 用法:expire_log.pl /var/lib/mysql/mysql-bin.[0-9]*
適用於 Binlog、Update Log 等帶序號文件。
SHOW SLAVE STATUS 記錄 Master_Log_File。PURGE MASTER LOGS TO 'mysql-bin.000123';切勿手動刪除 Binlog 文件,會導致索引不一致、Slave 復制中斷。
--innodb_log_group_home_dir=/logs/innodb
--bdb_logdir=/logs/bdb
錯誤日誌無法用 flush-logs 輪轉,需外部 mv + kill -HUP(Windows 需重啟服務)。