Administrator
发布于 2024-08-02 / 16 阅读
0
0

logrotate切割mysql数据库的general日志

  1. 创建mysql账号,用于连接数据库新生成日志文件。为了安全,控制账号只有重新加载授权表信息的权限

    # 用管理员账号连接MySQL
    mysql -uroot -p数据库密码
    
    # 创建用户
    CREATE USER 'generallog-logrotate'@'localhost' IDENTIFIED BY 'hbzjt@2024';
    # 给用户赋予reload权限
    GRANT RELOAD ON *.* TO ' generallog-logrotate '@'localhost';  
    FLUSH PRIVILEGES;
    
  2. 创建一个新的logrotate配置文件

    sudo touch /etc/logrotate.d/mysql-general
  3. 使用vi命令编辑上一步创建的文件,增加以下内容

    /work/mysql/ecs.log {
        create 640 mysql mysql
    rotate 36
    monthly
    missingok
    notifempty
    compress
    postrotate
        /usr/bin/mysqladmin flush-logs -u generallog-logrotate -phbzjt@2024 -S /var/lib/mysql/mysql.sock
    endscript
    }
  4. 测试日志切割

    # 执行日志切割脚本
    /usr/sbin/logrotate -f /etc/logrotate.conf
    
    
    # 查看是否切割成功,若生成了ecs.log-年月日.gz文件说明成功
    ll -h
    


评论