mysql日志分割大致有三种方案

  1. 定时把日志重命名为历史文件,然后通过mysqladmin 执行flush-logs将日志文件描述符定位到新的文件;
  2. 通过命令定时的更换日志文件的路径set global slow_query_log_file=;
  3. 使用logrotate.

两种都要通过mysql的账号密码去登录mysql,第二种不用mv文件,所以我认为第二种方式更优雅一些.
以下是我通过第二种方式进行日志分割的脚本:

#!/bin/bash

time=`date "+%Y-%m-%d"`
host="127.0.0.1"
user="root"
passwd="******"
mysql -h$host -u$user -p$passwd -e "set global slow_query_log_file='/data/mysql_data/logs/slow-$time.log';"

bandit
1.3k 声望9 粉丝

PHP程序员|do one,do best.