如何配置mysql数据库的操作日志及如何查看mysql的操作日志记录

MySQL的几种操作日志
1、错误日志 log_error (主要是记录启动、运行、停止mysql时出现的致命问题,系统级别的错误记录)
2、查询日志 log (主要记录数据库建立的客户端连接和执行的语句)
3、二进制日志 log_bin (主要是记录所有的更改数据的语句,可使用mysqlbinlog命令恢复数据)
4、慢日志 log_slow_queries (主要是记录所有执行时间超过long_query_time的查询或没有使用索引的查询)
5、更新日志 log_update(官方建议不开启,在此忽略)

如何去查询这些日志是否开启:
用mysql命令客户端登录mysql
1、错误日志 log_error
mysql>show variables like ‘log_error’;
2、查询日志 log
mysql>show variables like ‘log’;
3、二进制日志 log_bin
mysql>show variables like ‘log_bin’; (确认二进制日志是否开启)
mysql>show master status; (当前日志)
mysqlbinlog --start-datetime=‘2008-12-01 00:00:00’ --stop-datetime=‘2008-12-02 00:00:00’ /var/log/mysql/mysql-bin.000006 > mysqllog1.log (查看时间段内的日志)

4、慢日志 log_slow_queries
mysql>show variables like ‘log_slow_queries’;

如果Value的值为OFF,则说明没有开启。如何去配置:
1、log-error开启方式:在my.ini(linux:/etc/my.conf)的[mysqld]选项下,添加代码:log_error=path\filename
2、log开启方式:在my.ini(linux:/etc/my.conf)的[mysqld]选项下,添加代码:log=path\filename
3、log-bin开启方式:在my.ini(linux:/etc/my.conf)的[mysqld]选项下,添加代码:log_bin=path\filename
4、log_slow_queries开启方式:在my.ini(linux:/etc/my.conf)的[mysqld]选项下,添加代码: log_slow_queries=path\filename
long_query_time=1(查询标准,单位是s/秒)

设置日志过期时间
首先查看日志的过期时间
mysql>show variables like ‘expire_logs_days’;
0-表示永久不过期
mysql>set global expire_logs_days=30;(设置有效期为30天)
没有权限:(1227 - Access denied; you need the SUPER privilege for this operation)
解决办法:vim /etc/my.conf 去掉[mysqld]段中# skip-grant-tables前面的# 如果没有则在[mysqld]中添加skip-grant-tables

日志过于庞大,查询起来非常麻烦,可以截取某个时间段内的日志进行查看
sed -n ‘/2018-12-01 09:25:55/,/2018-12-02 09:28:55/p’ logfile>logfile