博客
关于我
mysql的logrotate脚本
阅读量:788 次
发布时间:2023-02-13

本文共 1487 字,大约阅读时间需要 4 分钟。

随着业务规模的扩大和时间的推移,MySQL的日志文件必然会呈指数级增长,日志文件的体积也会不断膨胀。为了有效管理这些日志文件,通常需要使用logrotate进行轮替管理。MySQL官方提供的二进制包中包含了用于日志轮转的logrotate脚本,位于support-files文件夹中,文件名为mysql-log-rotate。不过,这个脚本需要经过适当修改后才能正常使用。

以下是修改后的MySQL日志轮转脚本内容:

#!/bin/sh## This logname can be set in /etc/my.cnf by setting the variable "err-log"# in the [safe_mysqld] section as follows:##  [safe_mysqld]##  err-log=/usr/local/mysql/data/mysqld.log## If the root user has a password, you need to create a# /root/.my.cnf configuration file with the following content:##  [mysqladmin]##  user = root##  password = # 
## host = yourhost## port = 3307#
## This ensures that /root/.my.cnf is only readable by root.#{ create 600 mysql mysql \ -- notifies missingok daily rotate 3 compress postrotate { if test -x /usr/local/mysql/bin/mysqladmin \ && /usr/local/mysql/bin/mysqladmin ping > /dev/null \ then /usr/local/mysql/bin/mysqladmin flush-logs fi }}

将修改后的logrotate脚本复制到/etc/logrotate.d/mysqld文件中。需要注意的是,如果你的MySQL根用户设置了密码,你需要在/root/.my.cnf文件中添加相应的配置信息,以便mysqladmin能够正常使用。

/root/.my.cnf文件中添加以下内容:

[root@localhost ~]# vim .my.cnf[root@localhost ~]# 
[mysqladmin] user = root password = host = yourhost port = 3307

请将<secret>部分中的内容替换为你的实际密码信息。这样配置后,logrotate脚本就可以正常地执行日志轮转操作了。

需要注意的是,如果日志文件为空,logrotate会自动忽略该操作。日志轮转操作每天执行3次,并且如果发现MySQL服务未启动,会自动调用flush-logs命令完成日志刷新。

通过以上方法,你可以轻松地实现MySQL日志的自动轮转管理,避免日志文件占用过多存储空间,并确保服务器运行更加稳定。

转载地址:http://wvdfk.baihongyu.com/

你可能感兴趣的文章
Mysql学习总结(81)——为什么MySQL不推荐使用uuid或者雪花id作为主键?
查看>>
Mysql学习总结(82)——MySQL逻辑删除与数据库唯一性约束如何解决?
查看>>
Mysql学习总结(83)——常用的几种分布式锁:ZK分布式锁、Redis分布式锁、数据库分布式锁、基于JDK的分布式锁方案对比总结
查看>>
Mysql学习总结(84)—— Mysql的主从复制延迟问题总结
查看>>
Mysql学习总结(85)——开发人员最应该明白的数据库设计原则
查看>>
MySQL学习笔记十七:复制特性
查看>>
mysql安装卡在最后一步解决方案(附带万能安装方案)
查看>>
mysql安装和启动命令小结
查看>>
MySQL安装配置教程(非常详细),从零基础入门到精通,看完这一篇就够了
查看>>
mysql安装配置简介
查看>>
MySQL定义和变量赋值
查看>>
mysql实战01|基础架构:一条SQL查询语句是如何执行的?
查看>>
Mysql实战之数据备份
查看>>
mysql实现成绩排名
查看>>
Mysql客户端中文乱码问题解决
查看>>
mysql客户端工具使用
查看>>
MySQL密码忘记,怎么办?
查看>>
mysql对同一张表进行查询和赋值更新
查看>>
mysql导入数据库出现:Incorrect string value: '\xE7\x82\xB9\xE9\x92\x9F' for column 'chinese' at row 1...
查看>>
mysql导入(ibd文件)
查看>>