图文结合带你搞懂MySQL日志之Error Log(错误日志)

MySql运维篇---008:日志:错误日志、二进制日志、查询日志、慢查询日志,主从复制:概述 虚拟机更改ip注意事项、原理、搭建步骤 二进制日志(BINLOG)记录了所有的 DDL(数据定义语言:创建数据库…)语句和 DML(数据操纵语言:增删改)语句,但不包括数据查询(SELECT、SHOW)语句。①. 灾难时的数据恢复;因为二进制日志中记录了数据库、表、以及数据的变更。只需要把这里面的语句再次执行就可以恢复数据了。②. MySQL的主从复制。在MySQL8版本中主从复制底层原理就是基于二进制日志的,具体查看下一章。 阅读详情
  • GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。
  • GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。
  • 作者:KAiTO
  • 文章来源:社区原创

往期回顾:


什么是错误日志

错误日志(Error Log) 是 MySQL 中最常用的一种日志,主要记录 MySQL 服务器启动和停止过程中的信息、服务器在运行过程中发生的故障和异常情况等。

错误日志记录了啥

错误日志包含 mysqld 启动和关闭的时间信息,还包含诊断消息,如服务器启动和关闭期间以及服务器运行时出现的错误、警告和其他需要注意的信息。

例如:如果 mysqld 检测到某个表需要检查或修复,会写入错误日志。

根据错误日志配置,错误消息还可能填充 performance_schema.error_log 表,以便为日志提供 SQL 接口,使错误日志能够查询。

如果用 mysqld_safe 启动 mysqld,mysqld_safe 会将消息写入错误日志。

例如,当 mysqld_safe 注意到 mysqld 异常退出时,它会重新启动 mysqld,并将 mysqld 重新启动的消息写入错误日志。

怎么启动错误日志

在MySQL数据库中,错误日志功能是默认开启的。而且,错误日志无法被禁止。

默认情况下,错误日志存储在MySQL数据库的数据文件夹下,名称默认为mysqld.log(Linux系统)或hostname.err(mac系统)。如果需要制定文件名,则需要在my.cnf或者my.ini中做如下配置:

[mysqld]
log-error=[path/[filename]] #path为日志文件所在的目录路径,filename为日志文件名

修改配置项后,需要重启 MySQL 服务以生效。

查看日志

MySQL错误日志是以文本文件形式存储的,可以使用文本编辑器直接查看。 查询错误日志的存储路径:

mysql> show variables like 'log_err%';
+----------------------------+----------------------------------------+
| Variable_name              | Value                                  |
+----------------------------+----------------------------------------+
| log_error                  | /var/log/mysqld.log                    |
| log_error_services         | log_filter_internal; log_sink_internal |
| log_error_suppression_list |                                        |
| log_error_verbosity        | 2                                      |
+----------------------------+----------------------------------------+
4 rows in set (0.00 sec)

参数解析

  • log_error 定义为错误日志文件路径。
  • log_error_services 控制哪个日志组件启用错误日志,该变量可以包含具有0、1或多组件列表;在后一种情况下,组件可以用分号或(从MySQL 8.0.12开始)逗号分隔,另外服务器按照列出的顺序执行组件。 默认情况下,log_error_services 具有以下值:
mysql> SELECT @@GLOBAL.log_error_services;
+----------------------------------------+
| @@GLOBAL.log_error_services            |
+----------------------------------------+
| log_filter_internal; log_sink_internal |
+----------------------------------------+
1 row in set (0.00 sec)
  • log_error_suppression_list 用于错误日志的事件的抑制作用,有些日志不希望记录下来。
  • log_error_verbosity日志记录等级:
log_error_verbosity ValuePermitted Message Priorities
1ERROR
2ERROR, WARNING
3ERROR, WARNING, INFORMATION
  • 在MGR中建议设置为3可以记录更多日志信息,便于跟踪问题。

log_timestamps控制日志显示时间

在MySQL 5.7.2 新增了 log_timestamps 这个参数,该参数主要是控制 error log、genera log,等等记录日志的显示时间参数。 在 5.7.2 之后改参数为默认 UTC 这样会导致日志中记录的时间比中国这边的慢,导致查看日志不方便。

mysql> SHOW GLOBAL VARIABLES LIKE 'log_timestamps';
+----------------+-------+
| Variable_name  | Value |
+----------------+-------+
| log_timestamps | UTC   |
+----------------+-------+
1 row in set (0.00 sec)

可以看到使用的时间是UTC时间,UTC是世界公用的一个时间,那么我们本地时间和UTC时间就必然存在一个换算关系。按北京时间来算,北京时间将比UTC时间快8个小时。

修改方法:

  • MySQL5.7修改
1.set global log_timestamps=system;
2.修改后可以在配置文件再添加
  [mysqld]
  log_timestamps=system
  • MySQL8.0修改
1.set global log_timestamps=system;
  • 小节结论 1.为了国内用户便于读取日志信息,建议将参数写入到配置文件my.cnf 2.MySQL 8.0支持参数log_timestamps持久化设置。

删除\刷新日志

对于很久以前的错误日志,数据库管理员查看这些错误日志的可能性不大,可以将这些错误日志删除,以保证 MySQL 服务器上的硬盘空间。MySQL 的错误日志是以文本文件的形式存储在文件系统中的,可以直接删除。

#刷新日志
[root@kaito log]# mysqladmin -uroot -p flush-logs
Enter password:
mysqladmin: refresh failed; error: 'Could not open file '/var/log/mysqld.log' for error logging.'

官网提示:

file

补充操作:

install -omysql -gmysql -m0644 /dev/null /var/log/mysqld.log

·flush-logs·指令操作:

  • MySQL5.5.7以前的版本,flush-logs将错误日志文件重命名为filename.err_old,并创建新的日志文件。
  • 从MySQL5.5.7开始,flush-logs只是重新打开日志文件,并不做日志备份和创建的操作。
  • 如果日志文件不存在,MySQL启动或者执行flush-logs时会自动创建新的日志文件。重新创建错误日志,大小为0字节。

参考文章

《MySQL是怎样运行的--从根儿上理解MySQL》—小孩子4919


Enjoy GreatSQL :)

关于 GreatSQL

GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。

相关链接: GreatSQL社区 Gitee GitHub Bilibili

GreatSQL社区:

捉虫活动详情:https://greatsql.cn/thread-97-1-1.html

社区博客有奖征稿详情:https://greatsql.cn/thread-100-1-1.html

6440

log_error_verbosity参数详解 log_error_verbosity控制每条日志信息的详细程度 阅读详情

相关推荐

MySQL 日志文件

不仅如此,在对redo log写入时有两个阶段的提交,一是binlog写入之前prepare状态的写入,二是binlog写入之后commit状态的写入。其实写redo log的时候,也会有buffer,是先写buffer,再真正落到磁盘中的。在数据修改的时候,不仅记录了redo log,还记录undo log,如果因为某些原因导致事务失败或回滚了,可以用undo log进行回滚。因为undo log存储着修改之前的数据,相当于一个前版本,MVCC实现的是读写不阻塞,读的时候只要返回前一个版本的数据就行了。

name_sakura的博客 4058

MySQL日志(log_error、general_log、slow_query_log、log_bin、InnoDB 事务日志(redo log和undo log))

文章目录一、MySQL日志缓存二、MySQL错误日志(log_error)三、MySQL普通查询日志(general_log)四、MySQL慢查询日志(slow_query_log)五、二进制日志(log_bin)(一)开启二进制日志(二)二进制日志格式(三)日志读取(四)二进制日志的清理六、InnoDB 事务日志重做日志(redo log)回滚日志(undo log)Checkpoint机制脏页(dirty page)日志序列号(log sequence number)七、日志文件备份 日志是 mysql

weixin_45880055的博客 3225

Windows下MySQL 8.0 ZIP版极简安装与故障排查指南

MySQL是一种广泛使用的关系型数据库管理系统,其安装过程常因环境差异、配置模糊和权限问题导致失败。理解Windows服务机制、my.ini配置原理及mysqld初始化流程,是实现稳定部署的技术基础。通过显式指定datadir路径、ANSI编码配置文件、管理员权限执行初始化与服务注册,可显著提升安装成功率。该方案规避MSI向导黑盒与Web Installer网络依赖,适用于教学实训、开发环境快速搭建及轻量生产部署等场景,特别契合‘mysql8.0安装教程’‘mysql下载安装教程’等高频搜索需求。

weixin_33827731的博客 387

MySQL数据库——MySQL错误日志(Error Log)详解

错误日志(Error Log)是 MySQL 中最常用的一种日志,主要记录 MySQL 服务器启动和停止过程中的信息、服务器在运行过程中发生的故障和异常情况等。

Itmastergo的博客 7345

基于SpringBoot+微信小程序+MySQL的旅游攻略平台全栈开发实战

在现代Web应用开发中,前后端分离架构已成为主流范式,其核心在于通过清晰的API接口实现客户端与服务端的数据交互。SpringBoot作为Java领域高效的微服务框架,通过自动配置和约定优于配置的原则,极大地简化了后端服务的开发与部署。结合MySQL关系型数据库,开发者可以构建出数据模型清晰、业务逻辑严谨的应用系统。这种技术组合的价值在于能够快速搭建高内聚、低耦合的企业级应用,广泛应用于内容管理、社交互动、电商平台等场景。本文聚焦于一个典型的实战案例——旅游攻略交流平台,深入探讨如何利用SpringBoot

weixin_30797199的博客 325

WordPress本质解析:PHP+MySQL动态引擎与钩子驱动架构

WordPress本质上是一个基于PHP和MySQL构建的动态内容渲染引擎,其核心并非静态模板或编程语言,而是遵循GPLv2+协议、以钩子(Hook)机制驱动的模块化Web内容交付系统。它通过WP_Query解析URL生成SQL查询,经模板层级匹配与The Loop输出内容,整个流程构成严谨的‘请求-响应’管道。MySQL在此不仅是数据存储,更是实时决策中枢;插件则通过action/filter钩子实现无侵入式功能扩展,而非简单开关。这种架构赋予WordPress在企业官网、电商门户、政府平台等多场景下的高

weixin_30701575的博客 362

MySQL日志 - Error Log错误日志

MySQL日志历史文章,《MySQL日志 - General Query Log》MySQL的错误日志,是我们排查问题的主要线索之一,引用GreatSQL技术社区的这篇文章《图文结合带你搞懂MySQL日志之Error Log(错误日志)》,借鉴学习一下。什么是错误日志错误日志(Error Log)是MySQL中最常用的一种日志,主要记录MySQL服务器启动和停止过程中的信息、服务器在运行过程中发...

bisal的专栏 1124

MySQL增删改实战:从语法到生产级数据操作安全与性能优化

上周给一家公司的开发团队做内训,讲到数据库基础操作时,发现一个挺有意思的现象:几乎所有人都能写出 INSERT 、 UPDATE 、 DELETE 这些 SQL 语句,但一到实际项目里,尤其是面对稍复杂的业务逻辑、并发场景或数据一致性要求时,问题就层出不穷。不是插入失败导致数据错乱,就是更新时“误伤”了不该动的记录,或者删除操作引发连锁反应。这让我意识到,很多人对“增删改查”的理解,还停留在语法层面,远未触及生产环境中稳定、高效、安全操作数据的核心。 数据库的“增删改”操作,远不止是几条命令。它们是你与数据

weixin_30482383的博客 399

Linux安装MySQL教程:手把手图文讲解,教你在CentOS 7上安装MySQL

本文摘要: 本文详细介绍了在CentOS 7系统上通过二进制方式安装MySQL 8.0的完整流程,涵盖环境检查、目录规范、用户配置、依赖安装、数据初始化等关键步骤。教程采用标准化路径管理(/opt/mysql、/data/mysql),强调使用mysql虚拟用户运行服务,提供详细的配置文件模板(my3306.cnf),并解决常见依赖问题。通过--initialize-insecure实现空密码初始化,最后配置环境变量简化操作。全文配有命令行截图和注释,适合运维、开发及Linux初学者快速部署生产级MySQL

mysql教程 721

Anaconda下安装LabelImg

Anaconda下安装LabelImg

LYH8543的博客 756

Arnold Denoise流程

参考:https://support.solidangle.com/display/ARP/Removing+Noise+Workflow Arnold生来不是一个以单帧渲染速度见长的渲染器,但这并不能作为一个简单场景渲染时间长达几个小时的借口。 个人认为高品质生产级渲染结果中,Unbiased renderer在渲染时最耗计算时间的其实就是降噪,以至于降噪专门成了一门灯光师必备的技术

机器猫的CG空间 5084

MySQL小白必看:my.ini配置文件详解入门

刚开始接触MySQL时,那个神秘的my.ini文件总是让人望而生畏。作为MySQL的核心配置文件,它负责控制数据库的各种行为,但对新手来说,里面密密麻麻的参数简直像天书。实际操作中我发现,平台已经预置了合理的默认配置,并且提供了清晰的参数说明,让我能快速理解每个设置项的作用。对于想学习MySQL配置但又不想折腾环境的新手来说,这种即开即用的体验真的很方便。上可以直接体验预配置好的MySQL环境,无需担心复杂的安装和配置过程。平台提供了一键启动测试MySQL实例的功能,特别适合快速验证各种配置参数的效果。

NightshadeRaven21的博客 791

Icarus Verilog和GTKwave使用简析

本简要介绍Icarus Verilog和GTKwave的使用,使用iverilog(Icarus Verilog)编译仿真verilog而使用GTKWave查看仿真数据波形下载安装 基本使用 iverilog使用 GTKWave使用 iverilog常用选项 使用库 注意

husipeng86的专栏 1万+

【2026最新全网最细】MySQL卸载、下载、安装、配置、使用全流程图文解析、和细节讲解(保姆级教学)

MySQL数据库的完全卸载和安装配置流程。包含卸载,下载安装器、自定义安装和配置,重点讲解了配置环节的8个关键设置项,包括认证方式、账户权限、日志选项等。最后提供了环境变量配置和安装验证方法。

qq_69719414的博客 1762

SAP MM 物料描述MAKTX 40个字符不够用的问题处理

SAP物料描述表,长度40个字符一般情况下,40个字符在描述中也够用了,但是要加上规格之类的额外描述就不一定了,特别是对于辅助件-刀具。解决方案一:对maktx增强,换成CHAR80或者CHAR100的,但是风险较大,涉及到好多地方,另外SAP+ 算号器 也不支持。解决方案二:增强字段。内部顾问,建议在 那就在这里加一个字段,具体过程如下:1、创建域2、创建架构3、附加架构4、GUI 设置 5、后台设置6、MASS/MM17字段新增。过程1、创建域 SE112、创建结构 se11 3、MARA附加架构

GAVIN 4728

2021年秋招面经分享·字节跳动【芯片工程师-系统架构】

前言 如果想参考本人背景情况的可见这篇概述 ============================ 正文开始 ============================== 【时间线】 7.29 字节一面 8.4 字节二面 8.11 字节三面 PS:红字表示我当时没答出来的问题,蓝字表示面试官的解答。 面经分享 一面·技术面【1小时5分钟】   面试官京腔重,聊high了所以没时间撕代码了,但是华为应该不会这样。 自我介绍; 介绍一下APB; APB中3个状态的跳转是怎么跳转的; AXI中va

qq_43132308的博客 5612

shell脚本批量执行mysql脚本_shell在指定目录下批量执行sql脚本

编程之家收集整理的这篇文章主要介绍了shell在指定目录下批量执行sql脚本,编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。#!/bin/bash#execute all script in specified directoryMYDATE=`date +%F'-'%T'-'%w`MYSQL_PATH=/tmp/scripts #指定的目录LOG_FILE=/tmp/scripts...

weixin_32342535的博客 1082

中国银行信息科技岗位笔试

收到笔试只剩四天了,收集的资料,后续会更新

weixin_46050242的博客 4594

网络安全竞赛实战解析:从Linux应急响应到MySQL漏洞利用

网络安全的核心在于对系统漏洞的发现、分析与响应。Linux系统作为广泛应用的服务器环境,其日志分析、进程排查与后门检测是应急响应的基础。数据库安全,尤其是MySQL的配置与权限管理,直接关系到数据安全。通过SQL注入等常见漏洞,攻击者可能获取数据甚至系统权限,这凸显了安全配置与代码审计的技术价值。在CTF竞赛和真实攻防演练中,这些技术被整合应用于模拟的企业网络入侵场景,考察选手从Web渗透、日志分析到系统加固的全链路能力。本文聚焦Linux应急响应与MySQL深度利用,结合金砖国家职业技能大赛等实战案例,解

weixin_34343000的博客 516

FPGA设计-Vivado的Off-Chip Termination设置问题

经常遇到在FPGA设计时,很多人很迷惑这些关于硬件的终端匹配怎么设置,Vivado的Off-Chip Termination设置问题,这里就详细说一下这个问题。

whm128的博客 2727

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

MySQL 5.7 保姆级安装指南:从核心原理到避坑实践

数据库作为现代应用的数据存储核心,其安装与配置是开发与运维的基础技能。MySQL凭借其开源、高性能和广泛生态,成为最流行的关系型数据库之一。理解其安装过程,本质是掌握服务部署、配置管理和系统集成的工程实践。MySQL 5.7版本虽非最新,但其卓越的稳定性、成熟的生态兼容性及海量生产环境验证,使其在众多企业级应用、教学和个人项目中依然扮演着“定海神针”的角色。本文将从数据库服务的通用部署逻辑切入,详解在Windows环境下部署MySQL 5.7的核心步骤与高频问题排查,重点解析MSI与ZIP两种安装模式的本质

weixin_34314962的博客 384

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

中文PHP/Linux实战教程:故障排查与生产环境调优

PHP和Linux是中小企业Web系统的核心技术栈,其稳定运行依赖对底层原理的深刻理解与精准的故障定位能力。本文围绕真实生产环境中的典型问题——如Nginx反向代理404、crontab环境变量丢失、MySQL导入失败、PHP大文件上传内存溢出等——解析LAMP生态下配置、日志、权限、时区、Cookie域等关键机制的技术本质。强调‘现象→证据→假设→验证’的工程化排查路径,结合Shell脚本、systemd服务管理、错误日志分析、中文语境化类比等实践方法,帮助开发者摆脱英文文档依赖,在母语环境中构建可复现、

clugcpne10995的博客 479

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

安装帝国CMS时,“检测运行环境”步骤显示错误,没有“下一步”按钮

帝国CMS“检测运行环境”出错

Myr233的博客 863

MySQL 5.7 安装配置全攻略:从零到精通的稳定部署指南

关系型数据库是应用数据存储与管理的核心组件,其核心原理在于通过结构化查询语言(SQL)对数据进行定义、操作和控制。在众多关系型数据库中,MySQL凭借其开源、高性能和成熟的生态,成为Web应用、企业后台等场景的基石技术。对于追求极致稳定性和广泛兼容性的项目,MySQL 5.7版本依然是生产环境中的可靠选择。本文聚焦于MySQL 5.7的实战部署,详细解析了在Windows和Linux两大主流平台上的安装流程、关键配置项以及性能调优入门。通过手把手指导,读者不仅能掌握MSI图形化安装和RPM/源码编译安装等核

weixin_30279671的博客 432

Java+Vue+Spring Boot+MySQL全栈汽车资讯网站毕业设计实战指南

在Web应用开发领域,前后端分离架构已成为主流范式,其核心在于通过清晰的职责划分提升开发效率和系统可维护性。其基本原理是前端负责用户界面与交互逻辑,后端专注于业务处理与数据管理,两者通过RESTful API进行通信。这种架构的技术价值在于实现了技术栈解耦、团队并行开发以及更好的可扩展性,广泛应用于内容管理系统、电商平台及企业级应用。对于计算机专业学生而言,掌握一个涵盖用户认证、内容管理(CRUD)、数据展示等核心模块的全栈项目,是理解现代软件开发流程、完成毕业设计的关键。本文以汽车资讯网站这一经典应用场景

weixin_34167819的博客 1521
上一篇: MySQL中WHERE后跟着N多个OR条件会怎样...
下一篇: 使用Keepalived工具实现集群节点的高可用
GreatSQL社区
博客等级 码龄5年 1210粉丝 390原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值