MySQL / MariaDB 用 logrotate 替 Log 记录档轮替


MySQL 或 MariaDB 的 Log 记录档可以纪录 MySQL 的错误, 对服务器的除错很有用, 但这个 MySQL Log 记录档跟其他 log 一样, 不理它会一直增大容量, 而 MySQL 内置没有记录档轮替的功能, 要做记录档轮替需要借用其他工具, 可以是自行编写 Shell Script 或 logrotate, 以下文章会示范在用 logrotate 将 MySQL 的 error log 记录档轮替。

第一步需要确定系统有开启 MySQL Log, 及知道 Log 的位置, 如果在 CentOS 用 yum 安装 MariaDB, 默认已经开启记录档, 默认记录档位置在 “log-error=/var/log/mariadb/mariadb.log”, 如果需要修改这个位置, 或查看系统存放记录档的位置, 可以开启 /etc/my.cnf:

# vi /etc/my.cnf

可以查看里面的 log-error 位置, 分别在 [mysqld] 及 [mysqld_safe] 段落, 如果没有可以自行加入, 例如:

如果有修改 my.cnf 的内容, 需要重新启动 MySQL:

# systemctl restart mysql

现在可以设定 logrotate, 建立档案 /etc/logrotate.d/mysql:

# vi /etc/logrotate.d/mysql

以下的设定以上面的记录档位置 /var/log/mariadb/mariadb.log 作为例子:

另外如果不是用 RHEL 及 CentOS, 可能有些参数要按系统的配置进行修改, 加入以下内容到档案:

储存盘案后离开 vi, logrotate 便设定完成了。

Leave a Reply