mysql 保存日志(mysql-5.7.21版本)
为什么要记录mysql的日志
记录下日志对于线上问题排查 慢sql定位都提供了方便
日志类型
mysql有四种日志:
- 所有日志:general log
- 慢查询日志:slow log
- 二进制日志:binary log
binary log也叫作变更日志,主要用于记录修改数据或有可能引起数据改变的mysql语句,并且记录了语句发生时间、执行时长、操作的数据等等。所以说通过二进制日志可以查询mysql数据库中进行了哪些变化。一般大小体积上限为1G,通过binary log可以恢复被删除的数据。
- 错误日志:error log
详细配置步骤
windows下在my.ini里配置,linux下在my.cnf里配置。
general log记录用户所有的操作。
查看是否开启:
以命令行方式连接mysql
show variables like '%general%';
+------------------+----------------------------------------------+
| Variable_name | Value |
+------------------+----------------------------------------------+
| general_log | OFF |
| general_log_file | D:\DevSoft\mysql-5.7.21-winx64\data\Dong.log |
+------------------+----------------------------------------------+
没有开启,开启并设置日志文件路径
general_log = ON;
general_log_file = "D:\\DevSoft\\mysql-5.7.21-winx64\\logs\\general.log";
// 注意要保证路径存在
设置后查看确认下:
mysql> show variables like '%general%';
+------------------+-------------------------------------------------+
| Variable_name | Value |
+------------------+-------------------------------------------------+
| general_log | ON |
| general_log_file | D:\DevSoft\mysql-5.7.21-winx64\logs\general.log |
+------------------+-------------------------------------------------+
2 rows in set
查看日志文件:
##同样方式配置其他日志类型
#slow log
mysql> show variables like '%slow%';
+---------------------------+---------------------------------------------------+
| Variable_name | Value |
+---------------------------+---------------------------------------------------+
| log_slow_admin_statements | OFF |
| log_slow_slave_statements | OFF |
| slow_launch_time | 2 |
| slow_query_log | OFF |
| slow_query_log_file | D:\DevSoft\mysql-5.7.21-winx64\data\Dong-slow.log |
+---------------------------+---------------------------------------------------+
log_show_admin_statements = ON;
log_slow_slave_statements = ON;
slow_query_log=ON;
slow_query_log_file = "D:\\DevSoft\\mysql-5.7.21-winx64\\logs\\slow.log";