一、全日志配置
记录所有的操作信息和登录信息;
只有在全日志功能打开的时候才会记录,否则不做任何记录。
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 错误日志,即重要异常日志,此时系统一般遇上严重错误。
在如下三种状态下,会产生日志信息:启动日志、关闭日志、报错信息。