Mysql日志系统-Mysql serve层2

一、InnoDB引擎层的日志

1、通用查询日志,默认关闭

MySQL通用查询日志:

  • 它是记录建立的客户端连接和执行的所有DDL和DML语句(不管是成功语句还是执行有错误的语句),默认情况下,它是不开启的。
  • 请注意,它也是一个文本文件。
  • 可以通过以下的sql查看查询日志的状态:SHOW VARIABLES LIKE '%general_log%';Mysql日志系统-Mysql serve层2_第1张图片

使用以下命令开启通用查询日志,一般不开启,这是为了测试,当然也可以修改配置文件,重启服务:

# 在全局模式下,开启通用查询日志,1表示开启,0表示关闭
SET GLOBAL general_log=1;

#执行语句
SELECT * FROM `my_student`;
SELECT * FROM `my_student`;

开启后,我们随便执行sql语句之后,你会发现data目录多了以下文件:

Mysql日志系统-Mysql serve层2_第2张图片

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IgX4ez6u-1681363377211)(C:\Users\SayHello\Desktop\我的博客\博客笔记\mysql\advanced\5\img\image-20220507154728204.png)]

查看文件 / 使用more命令查看该文件:

more VM-12-17-centos.log 

在这里插入图片描述

2、慢查询日志

mysql8.0版本慢查询日志默认是开启的,使用如下命令查看慢查询日志的状态:SHOW VARIABLES LIKE '%slow_query_log%';

Mysql日志系统-Mysql serve层2_第3张图片

那么,何为慢?mysql通过一个变量 ‘long_query_time’ 来确定sql慢不慢,执行时间大于该值就会被记录在慢查询日志中,默认是10s:服务器动时会生成慢查询日志并记录 / 执行sql语句的时间大于默认时间也会记录

show variables like 'long_query_time'

#修改
set long_query_time = 3;

Mysql日志系统-Mysql serve层2_第4张图片

以下是【慢查询日志】的记录文本:

Mysql日志系统-Mysql serve层2_第5张图片
Mysql日志系统-Mysql serve层2_第6张图片
Mysql日志系统-Mysql serve层2_第7张图片

优化MySQL:

  1. 通过慢查询日志查看哪些语句存在问题,对这些问题做处理;
  2. 根据当前服务器设置更大的buffer pool;
  3. 查看binlog,binglog刷盘频繁也会影响性能,关闭binlog

3、错误日志

错误日志(Error Log)主要记录 MySQL 服务器启动和停止过程中的信息、服务器在运行过程中发生的故障和异常情况等。一旦发生mysql服务无法启动、程序崩溃一定要记得去查询错误日志:SHOW VARIABLES LIKE '%log_error%';

Mysql日志系统-Mysql serve层2_第8张图片

我们随便人为一个错误导致他无法启动,重新启动mysql命令如下:

service mysqld restart
systemctl mysqld restart

我们将inndb的系统表空间文件重命名,重新启动mysql服务,发生问题:

在这里插入图片描述

查询错误日志,寻找蛛丝马迹:

在这里插入图片描述

修改回正确的名字,重新启动成功:

在这里插入图片描述

查看window错误日志:
Mysql日志系统-Mysql serve层2_第9张图片
Mysql日志系统-Mysql serve层2_第10张图片

你可能感兴趣的:(mysql高级,mysql,数据库,sql,mysql日志)