首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Windows/Linux MySQL 啟用日誌管理全功能配置指南

     編輯:MySQL 資料庫相關知識

MySQL 提供五大類日誌,支撐故障診斷、審計追蹤、主從複製、效能分析。本文匯總查看啟用狀態、配置輸出路徑、各日誌類型用途與參數的跨平台完整指南。

一、查看日誌啟用狀態

-- 二進制日誌
SHOW VARIABLES LIKE 'log_bin';
-- 當前 Binlog 文件與位置
SHOW MASTER STATUS;
-- 所有 Binlog 列表
SHOW MASTER LOGS;

二、Binlog 解析工具 mysqlbinlog

# 完整解析
mysqlbinlog mysql-bin.000001

# 僅看尾部
mysqlbinlog mysql-bin.000001 | tail

三、配置文件位置

  • Windows:my.ini(安裝目錄或 C:\Windows\)
  • Linux:/etc/my.cnf 或 /etc/mysql/my.cnf

編輯 [mysqld] 區段,修改後 systemctl restart mysqld 生效。

四、五大日誌類型詳細配置

1. 錯誤日誌

記錄啟動、運行、關閉錯誤。建議永久啟用。

# Windows
log-error="E:/wamp/MySql/mysql_log/error.log"
# Linux
log-error=/usr/local/mysql/log/error.log

2. 一般查詢日誌

記錄所有連接與語句。**高負載下嚴禁長期開啟**,極大影響效能與磁碟。

# Windows
log="E:/wamp/MySql/mysql_log/general.log"
# Linux
log=/usr/local/mysql/log/mysql.log

3. 慢查詢日誌

記錄執行超過 long_query_time 秒或未使用索引的查詢。**生產必開**,核心調優依據。

# 通用參數
long_query_time = 2          # 閾值 2 秒,建議 1~2 秒
slow_query_log = 1           # 5.1+ 開關
slow_query_log_file = /path/slow.log

# Windows
log-slow-queries="E:/wamp/MySql/mysql_log/slowquery.log"
# Linux
log-slow-queries=/usr/local/mysql/log/slowquery.log

# 進階:記錄無索引查詢
log-queries-not-using-indexes = 1

4. 二進制日誌

記錄所有數據變更,**主從複製必備**,支援 PITR 恢復。

# Windows
log-bin="E:/wamp/MySql/mysql_log/binlog"
# Linux
log-bin=/usr/local/mysql/log/mysql-bin
# 格式建議
binlog_format = MIXED
# 同步策略
sync_binlog = 1
# 過期清理
expire_logs_days = 7

5. 更新日誌

已棄用(5.1+ 移除),完全由 Binlog 替代,勿使用。

五、Windows 完整配置範本

[mysqld]
## 通用
basedir=E:/wamp/MySql
datadir=E:/wamp/MySql/data
port=3306

## 日誌
log-error="E:/wamp/MySql/mysql_log/error.log"
log="E:/wamp/MySql/mysql_log/general.log"
long_query_time=2
slow_query_log=1
slow_query_log_file="E:/wamp/MySql/mysql_log/slowquery.log"
log-bin="E:/wamp/MySql/mysql_log/binlog"
binlog_format=MIXED
sync_binlog=1
expire_logs_days=7

六、Linux 完整配置範本

[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
socket=/tmp/mysql.sock

log-error=/usr/local/mysql/log/error.log
log=/usr/local/mysql/log/general.log
long_query_time=2
slow_query_log=1
slow_query_log_file=/usr/local/mysql/log/slowquery.log
log-bin=/usr/local/mysql/log/mysql-bin
binlog_format=MIXED
sync_binlog=1
expire_logs_days=7

七、日誌維護最佳實踐

  1. 錯誤日誌:永久保留,配合 logrotate 切割壓縮。
  2. 慢查詢日誌:保留 30 天,定期 pt-query-digest 分析。
  3. Binlog:expire_logs_days 自動清理,備份前先 FLUSH LOGS 切換新檔。
  4. 一般查詢日誌:僅臨時排查開啟,結束即關閉。
  5. 目錄權限:日誌目錄屬主 mysql:mysql,權限 750。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved