mysql - 如何限制MySQL的general_log文件大小?

标签 mysql mariadb

我需要将general_log保存到一个文件中并避免文件太大。

MariaDB 10.3

#This is the settings I write in the my.cnf.
[mysqld]
general_log_file = /var/log/mysql/mysql.log
general_log = 1

我知道有办法设置log_bin大小或过期时间,有没有办法设置general_log? 或者我必须通过 crontab 或手动删除该文件。

最佳答案

我也有同样的问题。看来MySQL无法限制general.log文件的大小。

我最终在 crontab 中使用此命令来保留 General.log 最后 20,000 行:

$ tail -20000 /path/to/mysql/general.log | sponge /path/to/mysql/general.log

这并不完美,因为一个请求可以记录在多行上。

如果海绵不可用:

$ apt install moreutils

关于mysql - 如何限制MySQL的general_log文件大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54763279/

相关文章:

mysql -/usr/sbin/mysqld : error while loading shared libraries: liblz4. so.1:无法打开共享对象文件:权限被拒绝

mysql - MariaDB(或MySQL)是否需要SSL证书以确保安全

sql - 获取mysql数据表中用户卡的最早时间戳

mysql - 将旧版 MySQL 数据库 (5.6.10) 导入 5.6.12 会产生错误

php - MySQL - 返回基于 2 个字段的值

mysql - 添加排序规则到 utf8mb4 字符集 - MySQL/MariaDB

mysql - 如何更新一个25GB的大表,超过3.5亿条记录的MyISAM?

MySQL: "Adding/Substracting strings in dialect 3"- 操作数字字段时出错?

java - 使用 Spring Boot 查询 MySQL 数据库时,SQL 查询返回未找到列 'id'

MySql重启mysql服务器后重置用户密码