
方法2.使用purge master logs to命令
方法3.使用purge master logs before命令
方法4.在my.ini配置文件[mysqld]选项组中设置expire_logs_days参数
摘抄自11.2.6 二进制日志的清理 MySQL核心技术与最佳实践!
MySQL 8.0 重新定义了错误日志输出和过滤,改善了原来臃肿并且可读性很差的错误日志。
比如增加了 JSON 输出,在原来的日志后面以序号以及 JSON 后缀的方式展示
比如我机器上的 MySQL 以 JSON 保存的错误日志 mysqld.log.00.json:
以 JSON 输出错误日志后可读性和可 *** 作性增强了许多。这里可以用 Linux 命令 jq 或者把这个字串 COPY 到其他解析 JSON 的工具方便处理。
只想非常快速的拿出错误信息,忽略其他信息。
使用 JSON 输出的前提是安装 JSON 输出部件。
格式为:过滤规则;日志输出;[过滤规则]日志输出;
查看安装好的部件
现在设置 JSON 输出,输出到系统日志的同时输出到 JSON 格式日志。
来测试一把。我之前已经把表 a 物理文件删掉了。
现在错误日志里有 5 条记录。
JSON 日志里也有 5 条记录。
那可能有人就问了,这有啥意义呢?只是把格式变了,过滤的规则我看还是没变。
那我们现在给第二条日志输出加过滤规则
先把过滤日志的部件安装起来
只保留 error,其余的一律过滤掉。
检索一张误删的表
查看错误日志和 JSON 错误日志
发现错误日志里有一条 Warning,JSON 错误日志里的被过滤掉了。
再举个例子,每 60 秒只允许记录一个 Warning 事件
多次执行
现在错误日志里有三条 warning 信息
mysqld.log.00.json 只有一条
总结,我这里简单介绍了下 MySQL 8.0 的错误日志过滤以及 JSON 输出。MySQL 8.0 的 component_log_filter_dragnet 部件过滤规则非常灵活,可以参考手册,根据它提供的语法写出自己的过滤掉的日志输出。
你是想开启mysql的满日志吧mysql有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的
打开 my.ini ,找到 [mysqld] 在其下面添加
long_query_time = 2
log-slow-queries = log=E:/wamp/logs/mysql-log.log #设置把日志写在那里,可以为空,系统会给一个缺省的文件
#log-slow-queries = /var/youpath/slow.log linux下host_name-slow.log
注意目录的权限要可写。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)