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

MySQL 5.7.9 慢查詢日誌配置避坑指南:權限、路徑與參數詳解

     編輯:MySQL 資料庫相關知識

問題背景

Zabbix 監控資料庫啟用慢查詢日誌後,日誌檔膨脹至 700MB,多為 0.1 秒級查詢。嘗試調整 long_query_time 並改用配置檔持久化,卻遭遇 slow_query_log 始終為 OFF、動態設定報權限錯誤等問題。

核心踩坑點

1. 日誌檔案權限問題

錯誤訊息:File '/MYSQLDATA/mysql_slow_query.log' not found (Errcode: 13 - Permission denied)

原因:MySQL 以 mysql 使用者啟動,但日誌目錄屬主為 root,導致無法建立/寫入檔案。

解決:

touch /MYSQLDATA/mysql_slow_query.log
chown mysql:mysql /MYSQLDATA/mysql_slow_query.log
chmod 644 /MYSQLDATA/mysql_slow_query.log

2. 參數名稱拼寫錯誤

配置檔中寫了 slow_query_log =(缺值)、long_query_time =(缺值),正確寫法:

slow_query_log = ON
slow_query_log_file = /MYSQLDATA/mysql_slow_query.log
long_query_time = 1
log_queries_not_using_indexes = ON

3. 多實例衝突

ps -ef | grep mysqld 發現殘留進程,導致配置不生效。需完整停止所有實例後再啟動。

標準配置範本

[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1
log_queries_not_using_indexes = 1
log_output = FILE

驗證與分析指令

-- 檢查配置生效
SHOW VARIABLES LIKE '%slow%';
-- 查看慢查詢統計
SHOW GLOBAL STATUS LIKE '%slow%';
-- 測試觸發
SELECT SLEEP(2);

延伸:其他常用日誌配置

# 一般查詢日誌(記錄所有 SQL)
general_log = 1
general_log_file = /var/log/mysql/general.log

# 錯誤日誌
log_error = /var/log/mysql/error.log

# 二進制日誌(主從複寫、時間點恢復必備)
log_bin = /var/log/mysql/binlog
binlog_format = ROW
expire_logs_days = 7
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved