MySQL物理文件----日志文件(错误日志、通用查询日志、二进制日志、慢查询日志)

MYSQL5.7/8.0支持的几种日志文件

在这里插入图片描述

1、错误日志(Error log)

MySQL 错误日志记录 MySQL 运行过程中较为严重的警告和错误信息,以及 MySQL 每次启动和关闭的详细信息。

MySQL 错误日志默认是开启的。可以通过 MySQL 配置文件中的 log-error=/var/log/mysqld.log 配置,修改错误日志的配置信息。

可以通过如下 SQL 查看错误日志的详细信息:
show variables like ‘%log_err%’;
在这里插入图片描述

注意点:
error log存放位置:/data/mysql_log/mysql-error-3306.log
vim mysql-error-3306.log 可查看日志内容


2、一般或通用查询日志(General query log)

记录已连接MYSQL数据库的客户端所执行的语句。

可以通过如下 SQL 查看当前的通用日志是否开启:
SHOW VARIABLES LIKE ‘%general%’;


mysql> SHOW VARIABLES LIKE '%general%';
+------------------+----------------------------+
| Variable_name    | Value                      |
+------------------+----------------------------+
| general_log      | ON                         |
| general_log_file | /data/mysql_data/query.log |
+------------------+----------------------------+
2 rows in set (0.00 sec)

开启通用查询日志:
set global general_log = on;

关闭通用查询日志:
set global general_log = off;
配置文件中进行配置:

开启日志
general_log =1
日志位置
general_log_file =/data/mysql_data/query.log
查询日志记录了所有的查询记录: 平时建议关闭,浪费空间

[root@mysql8 etc]# cat /data/mysql_data/query.log
/usr/local/mysql/bin/mysqld, Version: 8.0.24 (MySQL Community Server - GPL). started with:
Tcp port: 3306  Unix socket: /data/mysql_data/mysql.sock
Time                 Id Command    Argument
2023-07-30T08:49:14.667682+08:00            8 Connect   root@localhost on  using Socket
2023-07-30T08:49:14.667879+08:00            8 Query     select @@version_comment limit 1
2023-07-30T08:49:21.131935+08:00            8 Query     SHOW VARIABLES LIKE '%general%'
2023-07-30T08:50:51.850248+08:00            8 Query     show databases
2023-07-30T08:50:56.199913+08:00            8 Query     SELECT DATABASE()
2023-07-30T08:50:56.200093+08:00            8 Init DB   hr
2023-07-30T08:50:56.200584+08:00            8 Query     show databases
2023-07-30T08:50:56.200947+08:00            8 Query     show tables
2023-07-30T08:50:56.202286+08:00            8 Field List        aa
2023-07-30T08:50:56.205612+08:00            8 Field List        demp
2023-07-30T08:50:56.206189+08:00            8 Field List        demp1
2023-07-30T08:50:56.206691+08:00            8 Field List        departments
2023-07-30T08:50:56.207686+08:00            8 Field List        employees
2023-07-30T08:50:56.207961+08:00            8 Field List        tb_cs
2023-07-30T08:50:56.207997+08:00            8 Field List        tb_score
2023-07-30T08:50:56.208365+08:00            8 Field List        test_mim
2023-07-30T08:50:56.208624+08:00            8 Field List        testable
2023-07-30T08:51:08.537437+08:00            8 Query     show databases
2023-07-30T08:51:17.392536+08:00            8 Query     select * from mysql
2023-07-30T08:51:29.702097+08:00            8 Query     SELECT DATABASE()
2023-07-30T08:51:29.702263+08:00            8 Init DB   test
2023-07-30T08:51:29.702737+08:00            8 Query     show databases
2023-07-30T08:51:29.703097+08:00            8 Query     show tables
2023-07-30T08:51:29.703516+08:00            8 Field List        emp
2023-07-30T08:51:35.461386+08:00            8 Query     show tables
2023-07-30T08:51:41.102095+08:00            8 Query     select * from emp
2023-07-30T08:58:54.674562+08:00            8 Query     SHOW VARIABLES LIKE '%general%'

3、二进制日志(Binary log)

MySQL 的二进制日志(binary log)是一个二进制文件,主要用于记录修改数据或有可能引起数据变更的 SQL 语句。二进制日志(binary log)中记录了对 MySQL 数据库执行更改的所有操作并且记录了语句发生时间、执行时长、操作数据等其它额外信息,但是它不记录 SELECT、SHOW 等那些不修改数据的 SQL 语句。二进制日志(binary log)主要用于数据库恢复和主从复制,以及审计(audit)操作

3、1 查看是否开启二进制日志

mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | ON    |
+---------------+-------+
1 row in set (0.00 sec)

系统变量log_bin的值为OFF表示没有开启二进制日志(binary log)。ON表示开启了二进制日志(binary log)

3、2二进制日志开启

查看系统变量log_bin,如果其值为OFF,表示没有开启二进制日志(binary log),如果需要开启二进制日志,则 在my.cnf中[mysqld]下面添加log-bin [=DIR[filename]] ,DIR参数指定二进制文件的存储路径;filename参数指定二级制文件的文件名。 其中filename可以任意指定,但最好有一定规范。

3、3查看二进制文件位置

mysql> show variables like 'datadir';
+---------------+-------------------+
| Variable_name | Value             |
+---------------+-------------------+
| datadir       | /data/mysql_data/ |
+---------------+-------------------+

二进制文件存储位置:/data/mysql_data/

在这里插入图片描述

3、4二进制日志(Binary log) 的操作语句

/删除所有二进制日志文件:/
reset master

/删除部分二进制日志文件:/
purge master logs to/befor ‘args’;
例如:
PURGE MASTER LOGS TO ‘mysql-bin.010’;
PURGE MASTER LOGS BEFORE ‘2021-06-02 22:46:26’;

/查看是否启用二进制日志:/
show variables like ‘%log_bin%’;

/查看所有的二进制日志参数/
show variables like ‘%binlog%’;

/查看文件的位置/
show variables like ‘%datadir%’;

/查看当前服务器所有的二进制日志文件/
show binary logs;
show master logs;

4、 慢查询日志(Slow query log)

记录所有执行时间超过 long_query_time 秒的查询 SQL 或者没有使用索引的查询 SQL,默认情况下,MySQL 不开启慢查询日志,

1.long_query_time值查询语句: show variables like ‘long_query_time’;
2.long_query_time值修改语句: set long_query_time = 秒数;

/查看当前慢查询日志的开启情况:/
show variables like ‘%query%’;

mysql> show variables like '%query%';
+------------------------------+-------------------------------------+
| Variable_name                | Value                               |
+------------------------------+-------------------------------------+
| binlog_rows_query_log_events | OFF                                 |
| ft_query_expansion_limit     | 20                                  |
| have_query_cache             | NO                                  |
| long_query_time              | 1.000000                            |
| query_alloc_block_size       | 8192                                |
| query_prealloc_size          | 8192                                |
| slow_query_log               | ON                                  |
| slow_query_log_file          | /data/mysql_log/mysql-slow-3306.log 

slow_query_log:ON 表示开启慢查询日志,OFF 表示关闭慢查询日志

slow_query_log_file:记录慢查询日志的文件地址(默认为主机名.log)

long_query_time:指定了慢查询的阈值,单位是秒,即执行语句的时间若超过这个值则为慢查询语句

log_queries_not_using_indexes:ON 表示会记录所有没有利用索引来进行查询的语句,前提是 slow_query_log 的值也是 ON,否则,不会奏效,OFF 表示不会记录所有没有利用索引来进行查询的语句。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值