MySQL的操作日志记录

407 次浏览次阅读
没有评论

如何配置 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

正文完
 0
评论(没有评论)