mysql日志滚动

 更新时间:2014年01月24日 09:55:32   作者:  
日志滚动解决日志文件过大问题,比如我开启了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

相关文章

  • 深入MYSQL字符数字转换的详解

    深入MYSQL字符数字转换的详解

    本篇文章是对MYSQL中的字符数字转换进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • Mysql LONGBLOB 类型存储二进制数据 (修改+调试+整理)

    Mysql LONGBLOB 类型存储二进制数据 (修改+调试+整理)

    代码来自网络,我学习整理了一下,测试通过,下面的参数需要设置为你自己的
    2009-07-07
  • mysql Access denied for user ‘root’@’localhost’ (using password: YES)解决方法

    mysql Access denied for user ‘root’@’localhost’ (using p

    这篇文章主要介绍了mysql Access denied for user ‘root’@’localhost’ (using password: YES)解决方法,本文给出详细的解决步骤及操作注释,需要的朋友可以参考下
    2015-07-07
  • 深入理解mysql的自连接和join关联

    深入理解mysql的自连接和join关联

    这篇文章主要给大家介绍了关于mysql的自连接和join关联的相关资料,文中介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-04-04
  • mac os10.12安装mysql5.7.18教程

    mac os10.12安装mysql5.7.18教程

    这篇文章主要为大家详细介绍了mac os10.12下mysql5.7.18的安装教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • MySQL数据库主从复制延时超长的解决方法

    MySQL数据库主从复制延时超长的解决方法

    这篇文章主要给大家介绍了关于MySQL数据库主从复制延时超长的解决方法,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • mysql中操作表常用的sql总结

    mysql中操作表常用的sql总结

    这篇文章主要给大家介绍了mysql中操作表常用的sql的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • LInux下安装MySQL5.6 X64版本步骤详解

    LInux下安装MySQL5.6 X64版本步骤详解

    这篇文章主要介绍了LInux下安装MySQL5.6 X64版本步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 解析mysql与Oracle update的区别

    解析mysql与Oracle update的区别

    本篇文章是对mysql与Oracle update的区别进行了详细的分析介绍,需要的朋友参考下
    2013-07-07
  • 安装MySQL常见的三种方式

    安装MySQL常见的三种方式

    MySQL是一个开放源码的小型关联式数据库管理系统,被广泛地应用在Internet上的中小型网站中。接下来通过本篇文章给大家分享安装MySQL常见的三种方式,需要的朋友可以参考下
    2015-09-09

最新评论