MySQL8.0错误日志Error log
- GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。
理论知识
错误日志内容
错误日志包含mysqld启动和关闭的时间信息,还包含诊断消息,如服务器启动和关闭期间以及服务器运行时出现的错误、警告和其他需要注意的信息。例如:如果mysqld检测到某个表需要检查或修复,会写入错误日志。
根据错误日志配置,错误消息还可能填充performance_schema.error_log表,以便为日志提供SQL接口,使错误日志能够查询。
如果用mysqld_safe启动mysqld,mysqld_safe会将消息写入错误日志。例如,当mysqld_safe注意到mysqld异常退出时,它会重新启动mysqld,并将mysqld重新启动的消息写入错误日志。
错误日志组件架构
在MySQL 8.0中,错误日志使用MySQL组件(component) 架构。错误日志系统由执行日志事件过滤和写出组件以及系统变量组成,该系统变量配置启用哪些组件来实现所需的日志记录。
基于组件的错误日志记录提供了以下功能:
- 过滤器组件可以过滤日志事件,以影响写入的信息。
- 日志事件由sink(写出)组件输出。可以启用多个写出组件,以将错误日志输出到多个目标。
- 内置的过滤和写出组件结合起来实现默认的错误日志格式。
- 支持JSON格式的日志记录。
- 支持记录到操作系统日志。
log_error_services系统变量控制为错误记录启用哪些日志组件。多个组件用逗号或分号分隔,日志系统按照此顺序依次执行。组件分过滤filter和写出sink两类。filter类组件过滤错误日志信息,sink类组件将错误日志写到不同的位置。
filter类组件
过滤器组件 | 过滤依据 | 相关系统变量 |
---|---|---|
log_filter_internal | 错误事件的优先级及错误代码 | log_error_verbosity log_error_suppression_list |
log_filter_dragnet | 用户定义的规则 | dragnet.log_error_filter_rules |
sink类组件
系统变量log_error指定错误日志的缺省目的地,日志组件根据该系统变量决定自己的日志输出目的地。
sink类日志组件 | log_error值 | 目的地 |
---|---|---|
log_sink_internal(缺省) | file_name | file_name |
log_sink_internal | stderr | 控制台 |
log_sink_json | stderr | 控制台 |
log_sink_json | file_name | file_name.00.json file_name.01.json |
log_sink_test | stderr | 控制台 |
log_sink_test | file_name | file_name |
log_sink_syseventlog | stderr | 系统日志 |
log_sink_syseventlog | file_name | 系统日志 |
2. 运维操作
查询当前的错误日志配置(示例为缺省值)
mysql> SELECT @@GLOBAL.log_error_services;
+----------------------------------------+
| @@GLOBAL.log_error_services |
+----------------------------------------+
| log_filter_internal; log_sink_internal |
+----------------------------------------+
查询已安装的组件
mysql> select * from mysql.component;
+--------------+--------------------+----------------------------------------+
| component_id | component_group_id | component_urn |
+--------------+--------------------+----------------------------------------+
| 1 | 1 | file://component_log_sink_syseventlog |
+--------------+--------------------+----------------------------------------+
1 row in set (0.00 sec)
配置错误日志写出json格式
安装sink组件log_sink_json,修改log_error_services参数增加log_sink_json写出组件。
mysql>
INSTALL COMPONENT 'file://component_log_sink_json';
SET GLOBAL log_error_services = 'log_filter_internal; log_sink_internal; log_sink_json';
配置log_sink_internal组件
目标:配置log_sink_internal组件只记录ERROR类信息。
方法:修改启动参数文件,调整log_error_verbosity参数。
[mysqld]
log_error_verbosity=1
目标:配置log_sink_internal记录ERROR, WARNING, INFORMATION类错误,将 WARNING, INFORMATION中错误号MY-010001,MY-10002过滤掉。
方法:修改启动参数文件,调整log_error_verbosity和log_error_suppression_list参数
[mysqld]
log_error_verbosity=3
log_error_suppression_list='MY-010001,10002'
配置使用log_filter_dragnet过滤器
目标:配置过滤器,按照用户定义的规则过滤错误日志信息。
方法:使用log_filter_dragnet,配置变量dragnet.log_error_filter_rules添加过滤规则。
mysql>
INSTALL COMPONENT 'file://component_log_filter_dragnet';
SET GLOBAL log_error_services = 'log_filter_dragnet; log_sink_internal';
SET GLOBAL dragnet.log_error_filter_rules = '
IF prio>=INFORMATION THEN drop.
IF prio>=WARNING THEN throttle 1/60.
IF EXISTS source_line THEN unset source_line.
';
配置错误日志写入Linux系统日志
目标:将MySQL的错误日志写入Linux系统日志。
方法:使用log_sink_syseventlog组件,将错误日志写入Linux系统日志。
mysql>
INSTALL COMPONENT 'file://component_log_sink_syseventlog';
SET PERSIST log_error_services = 'log_filter_internal; log_sink_syseventlog';
刷新错误日志
目标:保留原错误日志,让MySQL开始一个新的错误日志。
方法:使用FLUSH ERROR LOGS 或 FLUSH LOGS 或 mysqladmin flush-logs都可以关闭错误日志,然后重新创建错误日志,在此之前应该手工将错误日志改名或备份。
#备份日志文件
mv /greatCluster/logs/error19000.log /greatCluster/logs/error19000.log.`date +%Y%m%d`
#刷新error log
mysqladmin flush-logs
或
mysql>flush error logs;
Enjoy GreatSQL
关于 GreatSQL
GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。
Gitee:
https://gitee.com/GreatSQL/GreatSQL
GitHub:
https://github.com/GreatSQL/GreatSQL
Bilibili:
https://space.bilibili.com/1363850082/video
微信&QQ群:
可搜索添加GreatSQL社区助手微信好友,发送验证信息“加群”加入GreatSQL/MGR交流微信群
QQ群:533341697
微信小助手:wanlidbc
本文由博客一文多发平台 OpenWrite 发布!
MySQL8.0错误日志Error log的更多相关文章
- MySQL 错误日志(Error Log)
同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分.MySQL有几种不同的日志文件.通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等. 这些日志能够帮助我们定位mysqld ...
- ubuntu1404下Apache2.4错误日志error.log路径位置
首先打开/etc/apache2路径下的apache2.conf文件,找到ErrorLog如下 ErrorLog ${APACHE_LOG_DIR}/error.log 这里{APACHE_LOG_D ...
- mysql错误日志/var/log/mariadb/mariadb.log,二进制日志
mariadb-日志 IT_luo关注0人评论65人阅读2018-10-15 08:59:03 mariadb日志 mariadb日志: 1.查询日志:query log: 2.慢查询日志:slo ...
- Navicat 12 连接 Mysql8.0 使用日志
目前最新的Mysql8.0 + Navicat12,使用中常有一些棘手问题 解决了的都会贴出来,受益于小伙伴们 我们的目标是发现问题,解决问题,欢迎大家贴出自己使用时遇到的问题,集思广益 好了,上干货 ...
- MySQL8.0 redo日志系统优化
背景 现在主流的数据库系统的故障恢复逻辑都是基于经典的ARIES协议,也就是基于undo日志+redo日志的来进行故障恢复.redo日志是物理日志,一般采用WAL(Write-Ahead-Loggin ...
- 2. SQL Server数据库状态监控 - 错误日志
原文:2. SQL Server数据库状态监控 - 错误日志 无论是操作系统 (Unix 或者Windows),还是应用程序 (Web 服务,数据库系统等等) ,通常都有自身的日志机制,以便故障时追溯 ...
- nginx访问日志,错误日志参数说明
说明: nginx日志主要有两种:访问日志.错误日志.其中访问日志记录客户端访问nginx的每一个请求,包含用户地域来源.跳转来源.使用终端.某个URL访问量等信息,访问日志格式可以自定义:错误日志则 ...
- MySQL日志文件之错误日志和慢查询日志详解
今天天气又开始变得很热了,虽然很热很浮躁,但是不能不学习,我在北京向各位问好.今天给大家分享一点关于数据库日志方面的东西,因为日志不仅讨厌而且还很重要,在开发中时常免不了与它的亲密接触,就在前几天公司 ...
- Apache下error.log文件太大的处理方法
清除error.log.access.log并限制Apache日志文件大小的方法,在网上搜了下相应的资料,并按照如下步骤做了一遍,网站恢复正常 清除error.log.access.log并限制A ...
随机推荐
- linux篇-linux 下tomcat服务每天定时启动
1l先准备一个脚本 #!/bin/sh #./etc/profile export JAVA_HOME=/usr/java/jdk1.6.0_45 sh /home/tomcat-bingchuang ...
- Git中的三种对象
1.Git中有三种对象 commit 每执行一次git commit,git都会对当前工作目录的所有文件生成一次镜像,工作区下的目录对应的对象是tree,工作区下的文件对应的对象是blob,tree下 ...
- 2020级cpp上机考试题解#B卷
A卷的第七题我只会一个个排除的方法 意思就是暂时没有好办法所以A卷不搞了 1:递归函数求数列 题意: 有一个递归函数int f(int m),计算结果代表了数列的第m项.当m等于1时,函数结果返回1: ...
- python并发编程之线程/协程
python并发编程之线程/协程 part 4: 异步阻塞例子与生产者消费者模型 同步阻塞 调用函数必须等待结果\cpu没工作input sleep recv accept connect get 同 ...
- mysql外键创建不成功/失效
当前mysql版本:SELECT VERSION();结果为:5.5.40. 在复习mysql外键约束时创建表格:stu与grade,目标:grade的id随着student的id级联更新,且限制删除 ...
- 在 GitHub 上玩转开源项目的 Code Review
一.幕后故事 时光荏苒,岁月如梭-- (太文绉绉了,这不是我的风格) 今天我准备聊聊在 GitHub 上如何玩 Code Review. 突发奇想?心血来潮?不是. 咋回事呢?(对八卦不感兴趣的可以直 ...
- CabloyJS v4.0.0支持工作流引擎及更多 🎉
截至2020年12月21日冬至,花了近5年时间作出最小可用NodeJS开源全栈框架,这就是CabloyJS V4.0.0 5年,90个模块,30万行代码,5400次提交(Commits),开启Node ...
- LOJ数列分块 9 题解
\(1.\) 题意 给定一个长度 \(n\) 序列,每次查询区间 \(l, r\) 的众数. \(2.\) 思路 如果边界是 \([l,r]\),\(l\) 在第 \(a\) 块,\(r\) 在第 \ ...
- Acwing 1927 自动补全(知识点:hash,二分,排序)
读完题目第一想法是trie树 ,不过好像没怎么做过trie树的题,看y总给的知识点是二分排序,所以就有了如下思路: 但是但是,看完其他题解之后才坚定了我的想法,原来真的是这样排序,暴力啊! 具体步骤 ...
- 开发工具-Visual Studio / Visual Studio Code 官方下载地址
更新记录 2022年6月10日 完善标题. Visual Studio官方下载地址 https://visualstudio.microsoft.com/ Visual Studio Code官方下载 ...