• 云途科技成立于2010年 - 专注全球跨境电商服务器租赁托管!
  • 帮助中心

    您可以通过下方搜索框快速查找您想知道的问题

    mysql 日志滚动

      in  数据库      Tags: 

    日志滚动解决日志文件过大问题,比如我开启了general_log,这个日志呢是记录mysql服务器上面所运行的所有sql语句;比如我开启了mysql的慢查询。

    1,查看一开log情况

    mysql> show global variables like '%log%';
    +---------------------------------+---------------------------------+
    | Variable_name                   | Value                           |
    +---------------------------------+---------------------------------+
    | back_log                        | 50                              |
    | binlog_cache_size               | 32768                           |
    | binlog_format                   | MIXED                           |
    | expire_logs_days                | 0                               |
    | general_log                     | ON                              |
    | general_log_file                | /usr/local/mysql/mysql.log      |
    | log                             | ON                              |
    | log_bin                         | ON                              |
    | log_bin_trust_function_creators | OFF                             |
    | log_bin_trust_routine_creators  | OFF                             |
    | log_error                       | /var/log/mysqld.log             |
    | log_output                      | FILE                            |
    | log_queries_not_using_indexes   | OFF                             |
    | log_slave_updates               | OFF                             |
    | log_slow_queries                | ON                              |
    | log_warnings                    | 1                               |
    | max_binlog_cache_size           | 4294963200                      |
    | max_binlog_size                 | 1073741824                      |
    | max_relay_log_size              | 0                               |
    | relay_log                       |                                 |
    | relay_log_index                 |                                 |
    | relay_log_info_file             | relay-log.info                  |
    | relay_log_purge                 | ON                              |
    | relay_log_space_limit           | 0                               |
    | slow_query_log                  | ON                              |
    | slow_query_log_file             | /usr/local/mysql/mysql-slow.log |
    | sql_log_bin                     | ON                              |
    | sql_log_off                     | OFF                             |
    | sql_log_update                  | ON                              |
    | sync_binlog                     | 0                               |
    +---------------------------------+---------------------------------+
    30 rows in set (0.00 sec)

    上面主要有三个日志文件,mysql.log,mysqd.log,mysql-slow.log,除了mysqld.log不能通过mysqladmin flush-logs来刷新日志外,其他的都可以,mysqld.log是服务器启动程序mysqld产生的。

    2,生成日志刷新用户

    mysql> GRANT RELOAD ON *.* TO 'log'@'localhost' IDENTIFIED BY 'log';
    Query OK, 0 rows affected (0.07 sec)
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.03 sec)

    root账户登录进去,添加一个log的用户。分开清楚一点。

    3,日志滚动脚本,只保留一个星期的日志

    [root@linux ~]# vim log.sh   //添加以下内容
    
    #!/bin/sh
    # log refresh 
    
    if [ -f $1 ];
    then
        echo "refresh ok" 1>&2
    else
        echo "log file do not exist;"
        exit 1
    fi
    
    LOG=$1
    DB_USER="log"
    DB_PASS="log"                                                                                                       
    
    # Others vars
    DATE=`date +%w`                                        
    
    BIN_DIR="/usr/local/mysql/bin"
    
    mv ${LOG} ${LOG}_${DATE}
    
    ${BIN_DIR}/mysqladmin  -ulog -plog flush-logs

    添加可执行权限chmod +x log.sh

    脚本很简单,不过有一点要解释一下,就是mv ${LOG} ${LOG}_${DATE},第一周会产生7个文件,第二周会覆盖上周的,星期一覆盖星期一,星期二覆盖星期二,以此内推。

    4,日志滚动

    [root@linux ~]# ./log.sh /usr/local/mysql/mysql.log
    refresh ok
    [root@linux ~]# ls /usr/local/mysql/ |grep mysql
    mysql.log
    mysql.log_1


    • 外贸虚拟主机

      1GB硬盘

      2个独立站点

      1000M带宽

      不限制流量

      美国外贸专用虚拟主机,cPanel面板,每天远程备份.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥180/年

    • 美国/荷兰外贸VPS

      2核CPU

      1G内存

      30硬盘

      10M带宽

      美国/荷兰外贸云服务器,专注外贸服务器行业12年.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥99/月

    • 全球外贸服务器

      8核CPU

      32G内存

      1TB硬盘

      1000M带宽

      已部署数据中心:美国洛杉矶/亚特兰大、荷兰、加拿大、英国伦敦、德国、拉脱维亚、瑞典、爱沙尼亚
      自有机柜(全球九大数据中心),稳定在线率:99.9%

      ¥999/月 原价1380

    7*24小时 在线提交工单

    如果您的问题没有得到解决,推荐您在线提交工单,我们的客服人员会第一时间为您解决问题

    展开