mysql日志怎么处理的 mysql日志文件

怎么进入mysql日志 mysql日志进入方法

1、首先找到MySQL的配置文件my.cnf,在[mysqld]下添加

创新互联建站,专注为中小企业提供官网建设、营销型网站制作、自适应网站建设、展示型成都网站建设、网站建设等服务,帮助中小企业通过网站体现价值、有效益。帮助企业快速建站、解决网站建设与网站营销推广问题。

2、general_log_file=~/query.log

3、同时,登录MySQL console中设置打开log

4、mysql -uroot

5、 SET global general_log = 1;

6、重启MySQL之后就可以在当前用户的HOME目录中通过query.log查看SQL日志了。

如何删除MYSQL日志文件及关闭日志功能

一、关闭MySql日志方法:

找到MySql的配置文件,然后注释以下两行即可(即在行首添加#符号就好了)。然后重启MySql服务

log-bin=mysql-bin

binlog_format=mixed

二、删除日志

1)手动删除日志

手动删除日志的基本语法如下:

PURGE {MASTER | BINARY} LOGS TO'log_name'

PURGE {MASTER | BINARY} LOGSBEFORE 'date'

①、查看当前日志:

show binary logs;

②、查看第一个二进制日志

show binlog events;

③、删除指定日志之前的日志

PURGE MASTER LOGS TO'mysql-bin.010';

④、删除指定日期之前的日志

PURGE MASTER LOGS BEFORE'2018-7-12 13:00:00';

⑤、删除N天前的日志

PURGE MASTER LOGS BEFOREDATE_SUB( NOW( ), INTERVAL N DAY);如下面的语句可以清除 7 天前的binlog,

PURGE MASTER LOGS BEFOREDATE_SUB( NOW( ), INTERVAL 7 DAY);

注意:BEFORE变量的date自变量可以为'YYYY-MM-DDhh:mm:ss'格式。MASTER和BINARY是同义词。

2)自动删除日志

①、第一种方式:设置日志保存时间

修改MySql的配置文件,设置以下属性:expire_logs_days=10。这个值根据实际情况来定。当然对于生产环境修改配置文件需要重启,这个代价可能会很大,还可以通过这个命令来修改生效set global expire_logs_days = 10;

②、第二种方式:设置定时任务

0 3 * * *  `mysql -uroot -e 'PURGE BINARY LOGS BEFOREDATE_SUB( NOW( ), INTERVAL 7 DAY);'`

上面的命令是每天凌晨3点删除7天前的binlog:

mysql的慢查询日志怎么处理

MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。

long_query_time的默认值为10,意思是运行10S以上的语句。默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。慢查询日志支持将日志记录写入文件,也支持将日志记录写入数据库表。

Linux系统上记录MYSQL操作的审计日志

根据笔者上一篇文章—Linux系统上记录用户操作的审计日志 。本文来利用相同的方法记录MYSQL操作的审计日志。

使用用mysql工具连接MySQL server的所有操作会默认记录到~/.mysql_history文件中,这个文件会把所有操作记录下来,包括创建用户和修改用户的明文密码,这在生产系统上是不安全的。如果不想保存,仅仅删除是不行的(文件不存在会再建立),要直接将其软连接到垃圾箱。

ln  -s  /dev/null  ~/.mysql_history

利用上一篇文章相同的方法记录MYSQL操作的审计日志,是因为mysql工具本身就是有一个shell, 每次mysql连接退出后,都会把此次操作的信息记录到~/.mysql_history文件中。那么可以重新定义MYSQL_HISTFILE环境变量来保存mysql日志。

先看置于/etc/profile.d目录下的环境变量的脚本mysql_history.sh,和loginlog类似。

  在测试时,发现平时使用的普通用户在操作mysql后无法记录,而root用户(平时没有操作过mysql)可以记录成功。后来在在~/.mysql_history文件找到了操作记录,估计是这个文件还存在的原因,删除后才记录到新的MYSQL_HISTFILE定义的路径。

  和loginlog一样,需要定期删除过期日志,以下脚本置于/etc/cron.weekly 目录下。

    delete_time=15

    find /opt/mysqllog/  -mtime +$delete_time -name '*.log' -exec rm -r {} \;

  但是相比于loginlog,mysqllog有两点暂时没有解决。

1、定义最大的记录条数history.maxSize不知在哪定义,my.cnf?

2、每一条命令的时间记录添加。


文章名称:mysql日志怎么处理的 mysql日志文件
网站路径:http://ybzwz.com/article/dospojd.html