• 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的更多相关文章

  1. MySQL 错误日志(Error Log)

    同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分.MySQL有几种不同的日志文件.通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等. 这些日志能够帮助我们定位mysqld ...

  2. ubuntu1404下Apache2.4错误日志error.log路径位置

    首先打开/etc/apache2路径下的apache2.conf文件,找到ErrorLog如下 ErrorLog ${APACHE_LOG_DIR}/error.log 这里{APACHE_LOG_D ...

  3. mysql错误日志/var/log/mariadb/mariadb.log,二进制日志

    mariadb-日志 IT_luo关注0人评论65人阅读2018-10-15 08:59:03   mariadb日志 mariadb日志: 1.查询日志:query log: 2.慢查询日志:slo ...

  4. Navicat 12 连接 Mysql8.0 使用日志

    目前最新的Mysql8.0 + Navicat12,使用中常有一些棘手问题 解决了的都会贴出来,受益于小伙伴们 我们的目标是发现问题,解决问题,欢迎大家贴出自己使用时遇到的问题,集思广益 好了,上干货 ...

  5. MySQL8.0 redo日志系统优化

    背景 现在主流的数据库系统的故障恢复逻辑都是基于经典的ARIES协议,也就是基于undo日志+redo日志的来进行故障恢复.redo日志是物理日志,一般采用WAL(Write-Ahead-Loggin ...

  6. 2. SQL Server数据库状态监控 - 错误日志

    原文:2. SQL Server数据库状态监控 - 错误日志 无论是操作系统 (Unix 或者Windows),还是应用程序 (Web 服务,数据库系统等等) ,通常都有自身的日志机制,以便故障时追溯 ...

  7. nginx访问日志,错误日志参数说明

    说明: nginx日志主要有两种:访问日志.错误日志.其中访问日志记录客户端访问nginx的每一个请求,包含用户地域来源.跳转来源.使用终端.某个URL访问量等信息,访问日志格式可以自定义:错误日志则 ...

  8. MySQL日志文件之错误日志和慢查询日志详解

    今天天气又开始变得很热了,虽然很热很浮躁,但是不能不学习,我在北京向各位问好.今天给大家分享一点关于数据库日志方面的东西,因为日志不仅讨厌而且还很重要,在开发中时常免不了与它的亲密接触,就在前几天公司 ...

  9. Apache下error.log文件太大的处理方法

    清除error.log.access.log并限制Apache日志文件大小的方法,在网上搜了下相应的资料,并按照如下步骤做了一遍,网站恢复正常   清除error.log.access.log并限制A ...

随机推荐

  1. 手绘图解java类加载原理

    摘要:这也许是全网"最大"."最细"."最深"的java类加载原理图解了. 本文分享自华为云社区<[读书会第12期]这也许是全网&qu ...

  2. React设置proxy后依旧报CROS错误

    1.判断表单数据是否为后端接收的类型 POST GET2.axios自动转换问题 手动添加标头这份表单数据包括了files (二进制数据)而标头显示是JSON格式 不符 所以报CROS 更多文章请移步 ...

  3. 内网穿透frp教程 windows远程桌面连接

    鉴于ngrok不是特别好用 昨天又发现frp这个神器 在管理端还有图形界面十分友好 话不多说开始 准备工作 1.一个域名 2.一台服务器 一.域名与服务器 域名和服务器直接买就好咯 价格不高 一定要在 ...

  4. 前端CSS3动画animation用法

    前端CSS3动画animation用法 学习如下动画属性 @keyframes animation-name animation-duration animation-delay animation- ...

  5. 图解 Apache SkyWalking UI 的使用

    Apache SkyWalking的UI界面主要分为以下几个区域: 功能选择区:这里列出了主要的UI功能,包括仪表盘.拓扑图.追踪.性能刨析.告警等功能 重新加载区:控制重新加载机制,包括定期重新加载 ...

  6. vscode远程调试c++

    0.背景 最近在学习linux webserver开发,需要在linux下调试自己的C/C++代码,但是linux下不像在windows下,直接Visio Studio或者其它集成开发环境那么方便,现 ...

  7. SQL Server各版本序列号/激活码/License/秘钥

    SQL Server 2019 Enterprise:HMWJ3-KY3J2-NMVD7-KG4JR-X2G8G Enterprise Core:2C9JR-K3RNG-QD4M4-JQ2HR-846 ...

  8. SAP 实例- 页签tabsrip

    屏幕页签:项目上有一需求,对标准TCODE 一个屏幕增加一个页签.于是做了个例子. 下面屏幕有两个页签. 我们来看一下屏幕结构.100屏幕是主屏幕,101,102是子屏幕,对应页签test1,test ...

  9. BluePrism手把手教程2.0 创建流程

    2.0.1 创建流程 2.0.2 设置流程名称 2.0.3 添加流程说明 2.0.4 添加流程成功 2.0.4 打开新建的流程 RPA行业微信交流群,欢迎大家扫码加入一起交流,此群用于RPA行业技术. ...

  10. 520到了,作为一个python程序员,必须整点肤白貌美的爬虫代码给你们~

    马上520就快到啦~ 整点好看的给你们看下~ 直接开搞~ 代码流程 模拟浏览器向服务器发送一个http请求,网站接收到请求后返回数据.在写爬虫代码的时候一定先要去模拟浏览器访问,因为现在的网站当接收到 ...