MySQL日志参数配置简介

277 阅读2分钟
原文链接: click.aliyun.com

一、全日志配置

记录所有的操作信息和登录信息;
只有在全日志功能打开的时候才会记录,否则不做任何记录。

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