low_query_log_file日志变得很大,对它进项分析变得很不方便,我们就想按天每天产生一个slow_query_log_file文件,每天分析这个日志文件。
如何按天切割呢?
mysql> show variables like '%slow_query_log_file%';
+---------------------+----------------------------------------+
| Variable_name | Value |
+---------------------+----------------------------------------+
| slow_query_log_file | mysql_slow_query.log |
+---------------------+----------------------------------------+
mysql> set global slow_query_log_file='mysql_slow_query_2020-04-12.log' ;
Query OK, 0 rows affected (0.03 sec)
mysql> show variables like '%slow_query_log_file%';
+---------------------+---------------------------------------------------+
| Variable_name | Value |
+---------------------+---------------------------------------------------+
| slow_query_log_file | mysql_slow_query_2020-04-12.log |
+---------------------+---------------------------------------------------+
2 rows in set (0.01 sec)
写个shell小脚本,定时更改日志名称,这样就可以按天生成日志。
新建脚本:cut_slow_log.sh
#!/bin/bash time=`date -d yesterday +"%Y-%m-%d"` host="127.0.0.1" user="root" passwd="xxxxxx" #提前创建好一个存放目录:/var/lib/mysql/slow_log/ mv /var/lib/mysql/server-10-slow.log /var/lib/mysql/slow_log/server-10-slow-$time.log mysql -u$user -p$passwd -e "set global slow_query_log_file='/var/lib/mysql/server-10-slow.log';"