mysql中的日志在/etc/my.cnf文件中配置
錯誤日志
log-error[=file_name]
- file_name指定錯誤日志文件的位置,如果沒有給定 file_name 值,mysqld 使用錯誤日志名 host_name.err(host_name 為主機名) 并默認在參數 DATADIR(數據目錄)指定的目錄中寫入日志文件。
二進制文件
server-id=101 log-bin[=file_name]
-
mysql 5.7.3之后,必須指定sever-id參數,數字格式
-
如果沒有給出 file_name 值,默認名為主機名后面跟“-bin”。如果給出了文件名,但沒有包 含路徑,則文件默認被寫入參數 DATADIR(數據目錄)指定的目錄。
-
binlog為二進制格式,無法用vi打開,應使用mysqlbinlog工具查看
- 日志清理
“RESET MASTER”
-
將刪除所有 BINLOG 日志,新日志編號從“000001” 開始。
mysql> reset master;
Query OK, 0 rows affected (0.08 sec)
“PURGE MASTER LOGS TO 'XXXXX'”
-
該命令將刪除“XXXXX”編號之前 的所有日志。
“PURGE MASTER LOGS BEFORE 'yyyy-mm-dd hh24:mi:ss'”
-
將刪除日期為 “yyyy-mm-dd hh24:mi:ss”之前產生的所有日志。
expire_logs_days=3
-
在my.cnf文件中配置改參數,自動刪除#天前的日志
查詢日志
查詢日志記錄了客戶端的所有語句,而二進制日志不包含只查詢數據的語句。
- 啟動mysql時指定
當用--log[=file_name]或-l [file_name]選項啟動 mysqld(MySQL 服務器)時,查詢日志開始被 記錄。和其他日志一樣,如果沒有給定 file_name 的值,日志將寫入參數 DATADIR(數據目 錄)指定的路徑下,默認文件名是 host_name.log。
設置log位置,Linux、OSX一般在 /tmp下。
- 動態設置
mysql>set global general_log_file='/tmp/general.log';
開啟general log模式
mysql>set global general_log=on;
關閉general log模式
mysql>set global general_log=off;
慢日志
- 啟動mysql時指定
當用--log-slow-queries[=file_name]選項啟動 mysqld(MySQL 服務器)時,慢查詢日志開始被 記錄。和前面幾種日志一樣,如果沒有給定 file_name 的值,日志將寫入參數 DATADIR(數 據目錄)指定的路徑下,默認文件名是 host_name-slow.log。
- my.cnf文件中配置
slow_query_log = 1 # 1/0來選擇是否啟動慢日志
slow_query_log_file = slow.log
long_query_time = 2 # 查詢時間超過2秒將會被記錄