MySQL日志历史文章,

《MySQL日志 - General Query Log》

MySQL的错误日志,是我们排查问题的主要线索之一,引用GreatSQL技术社区的这篇文章《图文结合带你搞懂MySQL日志之Error Log(错误日志)》,借鉴学习一下。

什么是错误日志

错误日志(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 Value Permitted Message Priorities
1 ERROR
2 ERROR, WARNING
3 ERROR, WARNING, INFORMATION
  • 在MGR中建议设置为3可以记录更多日志信息,便于跟踪问题。

    log_timestamps控制日志显示时间

在MySQL 5.7.2新增了log_timestamps这个参数,该参数主要是控制error log、general 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个小时。

修改方法:

  • MySQL 5.7修改,

1.set global log_timestamps=system;
2.修改后可以在配置文件再添加[mysqld]log_timestamps=system
  • MySQL 8.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.'

官网提示,

flush-logs指令操作:

  • MySQL 5.5.7以前的版本,flush-logs将错误日志文件重命名为filename.err_old,并创建新的日志文件。

  • 从MySQL 5.5.7开始,flush-logs只是重新打开日志文件,并不做日志备份和创建的操作。

  • 如果日志文件不存在,MySQL启动或者执行flush-logs时会自动创建新的日志文件。重新创建错误日志,大小为0字节。

如果您认为这篇文章有些帮助,还请不吝点下文章末尾的"点赞"和"在看",或者直接转发pyq,

近期更新的文章:

《MySQL日志 - General Query Log》

《最近碰到的一些问题》

《基金词汇的普及 - QDII和QFII (RQFII)》

《基金词汇的普及 - ETF和FOF》

《MySQL convert函数导致的字符集错误场景》

近期的热文:

《推荐一篇Oracle RAC Cache Fusion的经典论文》

《"红警"游戏开源代码带给我们的震撼》

文章分类和索引:

《公众号1100篇文章分类和索引》

MySQL日志 - Error Log错误日志相关推荐

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

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

  2. 配置php.ini文件,关闭错误提示,打开错误日志,设置错误日志路径(亲测)

    配置php.ini文件,关闭错误提示,打开错误日志,设置错误日志路径 打开php.ini配置文件: 找到display_errors = On:修改为:display_errors = Off: 找到 ...

  3. mysql错误日志为aborting_MySQL 错误日志(Error Log)

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

  4. 【MySQL】那些年我们玩过的MySQL错误日志-error log

    MySQL日志文件系统的组成: a.错误日志:记录启动.运行或停止mysqld时出现的问题. b.通用日志:记录建立的客户端连接和执行的语句. c.更新日志:记录更改数据的语句.该日志在MySQL 5 ...

  5. mysql 错误 日志_MySQL 错误日志(Error Log)

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

  6. mysql之 日志体系(错误日志、查询日志、二进制日志、事务日志、中继日志)...

    一. mysql错误日志: 错误日志记录的事件: a).服务器启动关闭过程中的信息 b).服务器运行过程中的错误信息 c).事件调试器运行一个事件时间生的信息 d).在从服务器上启动从服务器进程时产生 ...

  7. linux error log 换行,日志提示

    日志提示 线上问题,需要看日志. 控制台可以打印Mybatis操作的SQL语句. 开发流程: 第一步:加入依赖 image.png 第二步:在项目的resources中加入log4j属性文件 imag ...

  8. mysql dml 日志_Oracle DML错误日志笔记

    DML错误日志是Oracle 10gR2引入的一个类似于SQL*Loader的错误日志功能.它的基本原理是把任何可能导致语句失败的记录转移,放到一 DML错误日志是Oracle 10gR2引入的一个类 ...

  9. Mysql:日志管理:错误日志

    mysql的错误日志记录了mysqd服务器的基本进程的运行状态信息. 命令.配置选项:[--]log_error[=filen_ame] --调用flush logs时,生成新的错误日志文件,旧的文件 ...

最新文章

  1. 微信同步通讯录服务器繁忙,企业微信同步通讯录时提示 mobile existed
  2. Android如何客制化adb shell进去后显示shell@xxxx的标识
  3. SqlBulkCopy批量插入数据库
  4. MMSegmentation:标准统一的语义分割框架
  5. mmorpg开发_MMORPG可以教给我们如何组建一支英勇的开发团队
  6. Echarts 图表放大功能
  7. 笔记本电脑如何安装Linux系统
  8. 关键词抽取工具-THUtag 个人使用心得
  9. 纳什均衡C++简单实现
  10. 关闭、清除IBM小型机橙色告警灯方法
  11. 第四章:软件总体设计(4)此章结完
  12. 网络原理TCP IP
  13. 满城尽带黄金“假”(二)——断臂殇为谁而鸣
  14. 2020 icpc 沈阳
  15. vbs 产生随机数
  16. Python Excel导入Mysql的通用方法
  17. 跪求一卡通系统源码JAVA,重谢!!
  18. Sand Fortress
  19. 山东大学计算机导师东南大学,山东大学和东南大学比较,实力不相上下,你会选哪所?...
  20. 五年200亿,浪潮云跟阿里云、腾讯云的玩法不一样!

热门文章

  1. sql server之T-SQL语句创建数据库创建表
  2. urllib中urlparse使用技巧以及iter_content图片边下边存到硬盘使用
  3. 【论文笔记】Crop phenotyping in a context of Global Change: what to measure and how to do it
  4. 动词ing基本用法_动词ing的用法
  5. 暨南大学计算机技术复试名单复试,关于2020年暨南大学硕士生复试资格线及复试名单的通知来...
  6. 转 Java编程规范
  7. windowsmobile软件_经验:CSPJ/S初赛知识点整理(NOIP硬件与软件基础)
  8. SteamVR 2.x 手柄拾取3D物体(13)
  9. Markdown (CSDN) MD编辑器(一)- 实现页内跳转
  10. java drawstring 模糊_Java绘制文字质量太低的解决方案?