一、配置檔案分類與參數
錯誤日志
資料庫啟停過程中錯誤,運作過程中的異常。
儲存方式: 檔案
啟用方式:無需使用開關參數啟用,預設開啟
相關參數
檔案位置參數log_error,如果不指定值預設在DATADIR目錄下,名稱為host_name.error。
2.二進制(bin)日志
所有DDL和DML但不包含查詢語句。
啟用方式:需要配置檔案中設定開關參數啟用,預設關閉(OFF)
檔案位置參數log_bin,如果不指定名稱,名稱為host_name-bin.NUM;如果隻指定名稱,以指定名稱。均預設放到DATADIR目錄下。
binlog_format=STATEMENT/ROW/MIXED,日志格式控制,預設自動開啟。
expire_logs_days=N,日志儲存周期,預設為0,無限制。
也可使用指令删除SQL指令行RESET MASTER 或 PERGE MASTER LOGS
讀取指令
mysqlbinlog
使用場景:高可用主從複制、資料庫恢複時使用
3.查詢日志
全部SQL語句包含select。
儲存方式: 檔案 或 表(general_log)
要永久生效,需要配置檔案中設定開關參數啟用,預設關閉(OFF)
檔案位置參數general_log,參數已經顯示設定設定為 1 或不設定均表示啟用,設定為0 表示禁用。
general_log_file,如果未指定值,或者未顯示設定log_output的值,預設放到DATADIR目錄下hostname.log
4.慢查詢日志
全部超過參數long_query_time且掃描記錄數不小于long_query_time的SQL語句,管理語句和不适用索引的select不記錄。
儲存方式: 檔案 ,日志檔案中可以精确到微妙 或 表(slow_log),表中記錄隻能精确到秒。
啟用方式:要永久生效,需要配置檔案中設定開關參數啟用,預設關閉(OFF)
檔案位置參數slow_query_log,參數已經顯示設定,值設定為 1 或不設定均表示啟用,設定為0 表示禁用。
slow_query_log_file ,如果未指定值,預設hostname-slow.log放到DATADIR目錄下
log_output = file,table,可以指定其一或全部選擇;
相關工具
msqldumpslow 對慢日志進行分類,建議正常情況下開啟設定,并經常檢視。
使用場景:SQL優化,伺服器性能診斷。
5.第三方日志工具
慢查詢日志、查詢日志、二進制日志、使用者自定義類型日志檢視工具
mysqlsla
二、配置檔案舉例
[root@mdb01 mysql]# pwd
/opt/mysql
[root@mdb01 mysql]# vi my.cnf
# Start of my.cnf file
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
####### log setting ########
### bin log ###
log-bin
binlog_format = STATEMENT
expire_logs_days = 7
### slow log ###
slow_query_log = 1
log_output = file
# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# End of my.cnf file
三、驗證配置
1.二進制日志
mysql> show variables like "log_bin";
+---------------+-------+
| Variable_name | Value |
| log_bin | ON |
1 row in set (0.00 sec)
mysql> show variables like "binlog_format%";
+---------------+-----------+
| Variable_name | Value |
| binlog_format | STATEMENT |
mysql> show variables like "expire_logs_days";
+------------------+-------+
| Variable_name | Value |
| expire_logs_days | 7 |
2.慢查詢日志
mysql> show variables like "slow_query_log%";
+---------------------+--------------------------------+
| Variable_name | Value |
| slow_query_log | ON |
| slow_query_log_file | /opt/mysql/data/mdb01-slow.log |
2 rows in set (0.00 sec)
mysql> show variables like "log_output%";
| log_output | FILE |
1 row in set (0.01 sec)
mysql>
本文轉自 pgmia 51CTO部落格,原文連結:http://blog.51cto.com/heyiyi/1638585