msyql 日志分类、存储、启动,慢查询日志(一)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: Mysql日志的分类: 出错日志(error log):(log_error)这个日志记载着服务器启动和关闭的情况,还记载着关于故障或异常状况的消息。 我们安装完数据库之后,启动数据库如果发生异常,我们应该首先查这个日志文件。 常规查询日志:(log)该日志包括客户连接的记录,来自客户的SQL查询和其他的各种事件。一般我们可以用其来监视用户的活动,谁在连接,从哪连接,执行哪些操作

Mysql日志的分类:

出错日志(error log):(log_error)这个日志记载着服务器启动和关闭的情况,还记载着关于故障或异常状况的消息。

我们安装完数据库之后,启动数据库如果发生异常,我们应该首先查这个日志文件。

常规查询日志:(log)该日志包括客户连接的记录,来自客户的SQL查询和其他的各种事件。一般我们可以用其来监视用户的活动,谁在连接,从哪连接,执行哪些操作

慢查询日志:(slow_query_log)该日志用于改进查询性能,慢是有时间定义的,用变量(long_query_time)来配置,默认值是2.0,单位是秒,这个慢还取决你服务器,比如服务器的负载高时,可能查询速度就会下降,原本不是慢查询的语句,也会被写入到慢查询日志中。

二进制日志(binary log):(log_bin)这个日志由多个文件构成,里面记录着由update,delete,insert,create table, drop table,grant等语句完成的数据修改,二进制日志是一些二进制编码的数据修改“事件”,它有一套配套的索引文件,里面列出了服务器上现有的二进制日志文件

二进制日志索引文件:(log_bin_index)记录着服务器上现有的二进制日志文件,它可以配合数据库备份文件在系统发生崩溃后对数据表进行恢复,先从备份文件恢复数据库,然后使用mysqlbinlog工具把二进制日志的内容转换为文本语句,接下来把上次备份后执行的过的每一条数据修改语句依次执行,达到恢复到数据库崩溃前的状态。

mysql的复制机制:就是通过二进制日志把主服务器上发生的数据修改事件传到从服务器上去

中继日志:(relay_log)在主从架构时,一般在从服务器上会维护一个中继日志,里面记载着从主服务器上接收的、目前尚未执行的数据修改事件,中继日志和二进制日志的格式是一样的,并且也有一个配套的索引文件,其列出了从服务器上现有的中继日志文件。

中继日志索引文件:(relay_log_index)列出了从服务器上现有的中继日志文件。



日志的存储:

在5.1.20版本之后:日志除了被写入文件中还可以有如下的存储方式:

出错日志:可以发送到syslog

常规日志:可以写到mysql数据库中的数据库表中

慢查询日志:可以写到mysql数据库中的数据库表中

注:如果我们没有配置,默认mysql服务器是不会创建任何日志,但是两种特例除外:

1.在Unix操作系统中:如果用mysqld_safe来启动服务器,该脚本将创建出错日志,并告诉服务器去使用它

2.在Windows操作系统中:只要没有使用--console选项来表明让出错信息发送到控制台而不是被发送到文件,那么服务器就会创建出错日志

注:如果出错日志文件已经存在,但是用来登录服务器的账号没有写权限,mysql服务将会启动失败,并且没有任何报错消息被写入日志

使用mysqld_safe启动数据库服务器时,如何将出错日志信息发送到syslog,而不是发送到一个日志文件:

使用--syslog 参数代替--log_error——mysql技术内幕,但是在5.6中没有查到该参数

Windows上的出错日志:

在Windows上,mysql把错误日志默认写到数据目录的HOSTNAME.ERR文件中,但是如果在启动时,你使用了参数--console,那么此时mysql将会把错误信息打印在控制台,同时不会再写入错误文件里。

但是:如果你的mysql被安装成Windows的一项服务了,这时再使用--console将没有任何效果,因为它找不到控制台去输出。。。


日志的启用方式:

1.使用参数的方式:下面是本人在mysql5.6中可使用的参数名称:

参数 含义 含义
--log_error: (出错日志) path+file 日志文件存放路径
--log 常规日志 path+file  
--slow_query_log 是否开启慢查询日志 on/off 开关
--slow_query_log_file 慢查询日志文件存储名称 path+file 慢查询文件存储路径和名称
--log_bin 是否开启二进制日志 on/off 开关
--log_bin_basename 二进制日志的文件名 path+file  
--log_bin_index 二进制日志索引文件 path+file  
--relay_log 是否开启中继日志 on/off  
--relay_log_basename 中继日志文件名 path+file  
--relay_log_index 中继日志索引文件 path+file  

更多命令可使用:show variables like "%log%";来查询

注:配置日志的时候,如果没有文件,那么mysql会自动创建该文件,但是如果没有对应的子目录,mysql是不会自动创建子目录的


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
2月前
|
存储 JSON 缓存
十行代码让日志存储降低80%
十行代码让日志存储降低80%
58 2
|
26天前
|
存储 数据库
ALTER MATERIALIZED VIEW LOG :语句来更改现有物化视图日志的存储特征或类型。
`ALTER MATERIALIZED VIEW LOG` 语句用于修改已有的物化视图日志的存储属性或类型。配合示例中的动画图像(由于格式限制无法显示),该语句帮助优化数据库的性能和管理。
44 0
|
6月前
|
关系型数据库 MySQL 索引
mysql之开启慢查询日志
mysql之开启慢查询日志
|
7月前
|
存储 JSON 缓存
十行代码让日志存储降低80%
日志是系统中熵增最快的一个模块,它承载了业务野蛮生长过程中的所有副产品。本文介绍了一个日志治理案例,围绕降本和提效两大主题,取得一定成效,分享给所有渴望造物乐趣的同学。
53973 23
十行代码让日志存储降低80%
|
6月前
|
SQL 监控 关系型数据库
【MYSQL高级】Mysql找出执行慢的SQL【慢查询日志使用与分析】
【MYSQL高级】Mysql找出执行慢的SQL【慢查询日志使用与分析】
375 0
|
10月前
|
存储 监控 NoSQL
Redis从入门到精通之Redis 慢查询日志
慢查询日志是 Redis 提供的一个用于观察系统性能的功能,这个功能的实现非常简单,这里我们也简单地讲解一下。 本章先介绍和慢查询功能相关的数据结构和变量,然后介绍 Redis 是如何记录命令的执行时间,以及如何为执行超过限制事件的命令记录慢查询日志的。
812 0
|
1月前
|
存储 网络安全
在云效中,如果你看不到错误日志,可能是因为错误日志没有被正确地输出或者存储
【2月更文挑战第24天】在云效中,如果你看不到错误日志,可能是因为错误日志没有被正确地输出或者存储
13 2
|
3月前
|
SQL 关系型数据库 MySQL
MySQL SQL性能分析 慢查询日志、explain使用
MySQL SQL性能分析 慢查询日志、explain使用
81 0
|
4月前
|
SQL 存储 关系型数据库
②⑩ 【MySQL Log】详解MySQL日志:错误日志、二进制日志、查询日志、慢查询日志
②⑩ 【MySQL Log】详解MySQL日志:错误日志、二进制日志、查询日志、慢查询日志
79 0
|
4月前
|
SQL 监控 关系型数据库
MySQL调优之慢查询日志应用
MySQL调优之慢查询日志应用
46 0