MySQL日誌引數配置簡介

初雪之路發表於2018-11-28

一、全日誌配置

記錄所有的操作資訊和登入資訊;
只有在全日誌功能開啟的時候才會記錄,否則不做任何記錄。

1、引數相關設定

general_log=ON |OFF (開啟或關閉,也可以用0或1)

grneral_log_file=/data/mysql/JSH-01.log(日誌路徑及名字)

2、引數可調整範圍

general_log gengeral_log_file 均可以動態調整

3、示例

mysql> select @@general_log;
+---------------+
| @@general_log |        預設全日誌為關閉
+---------------+
|             0 |
+---------------+
1 row in set (0.00 sec)

mysql> set global general_log=1;   設定全域性變數,開啟全日誌
Query OK, 0 rows affected (0.00 sec)

mysql> select @@general_log;
+---------------+
| @@general_log |
+---------------+
|             1 |
+---------------+
1 row in set (0.00 sec)

mysql> select @@general_log_file;
+------------------------+
| @@general_log_file     |
+------------------------+
| /data/mysql/JSH-01.log |
+------------------------+
1 row in set (0.00 sec)

mysql> ^DBye
[root@JSH-01 mysql]# tail -3 /data/mysql/JSH-01.log   檢視記錄內容
181128 20:52:10        1 Query    select @@general_log
181128 20:52:21        1 Query    select @@general_log_file
181128 20:52:26        1 Quit    

……

mysql> set global general_log_file="/data/mysql/new_JSH-01.log";
Query OK, 0 rows affected (0.00 sec)   設定路徑及日誌名字

mysql> select @@general_log_file;
+----------------------------+
| @@general_log_file         |
+----------------------------+
| /data/mysql/new_JSH-01.log |
+----------------------------+
1 row in set (0.00 sec)

二、慢查詢日誌配置

記錄所有大於long_query_time定義的值的查詢資訊;
只有在慢查詢日誌功能開啟的時候才會記錄,否則不做任何記錄。

1、引數相關設定

slow_query_log=ON |OFF(開啟或關閉,也可以用0或1)

long_query_time=2 (定義超過多長時間的為慢sql)

slow_query_log_file=/data/mysql/JSH-01-slow.log(日誌路徑及名字)

2、引數可調整範圍

三個引數均可以動態調整

3、示例

mysql> select @@slow_query_log;
+------------------+
| @@slow_query_log |
+------------------+
|                0 |
+------------------+
1 row in set (0.00 sec)

mysql> set global slow_query_log=1;
Query OK, 0 rows affected (0.01 sec)

mysql> select @@long_query_time;    定義超過10秒為慢日誌
+-------------------+
| @@long_query_time |
+-------------------+
|         10.000000 |
+-------------------+
1 row in set (0.00 sec)

mysql> select @@slow_query_log_file;
+-----------------------------+
| @@slow_query_log_file       |
+-----------------------------+
| /data/mysql/JSH-01-slow.log |
+-----------------------------+
1 row in set (0.00 sec)

mysql> select slee(3);
ERROR 1305 (42000): FUNCTION slee does not exist
mysql> select sleep(3);    執行3秒
+----------+
| sleep(3) |
+----------+
|        0 |
+----------+
1 row in set (3.00 sec)

mysql> select sleep(11);    執行11秒
+-----------+
| sleep(11) |
+-----------+
|         0 |
+-----------+
1 row in set (11.01 sec)

mysql> ^DBye

[root@JSH-01 mysql]# tail -f /data/mysql/JSH-01-slow.log 檢視慢日誌
/usr/local/mysql/bin/mysqld, Version: 5.6.36 (MySQL Community Server (GPL)). started with:
Tcp port: 3306  Unix socket: /tmp/mysql.sock
Time                 Id Command    Argument
# Time: 181128 21:54:23          *開始執行時間
# User@Host: root[root] @ localhost []  Id:     4       *執行的使用者
# Query_time: 11.000287   *執行時長*   Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 0 
SET timestamp=1543413263;      *時間戳
select sleep(11);          *執行的內容

三、錯誤日誌配置

記錄MySQL啟動和關閉的一些資訊

1、引數相關設定

log_error=

2、引數可調整範圍(只讀引數,不支援動態調整)

只能在配置引數中修改,且修改完成需要重啟MySQL。

mysql> select @@log_error;
+------------------------+
| @@log_error            |
+------------------------+
| /data/mysql/JSH-01.err |
+------------------------+
1 row in set (0.00 sec)

mysql> set global log_error="/data/mysql/new_JSH-01.err";
ERROR 1238 (HY000): Variable `log_error` is a read only variable

3、修改配置引數時,如果使用mysql.server 和 mysqld_safe指令碼啟動

需要將log_error路徑引數配置在 my.cnf 的 [mysqld_safe]域中。

四、MySQL錯誤日誌詳解

錯誤日誌的內容分為三種型別:note正常工作日誌;waring警告日誌;error 錯誤日誌,即重要異常日誌,此時系統一般遇上嚴重錯誤。

在如下三種狀態下,會產生日誌資訊:啟動日誌、關閉日誌、報錯資訊。


相關文章