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:指定了慢查询的阈值,单位是秒,即执行语句的时间若超过这个值则为慢查询语句文章来源:https://www.toymoban.com/news/detail-551590.html
log_queries_not_using_indexes:ON 表示会记录所有没有利用索引来进行查询的语句,前提是 slow_query_log 的值也是 ON,否则,不会奏效,OFF 表示不会记录所有没有利用索引来进行查询的语句。文章来源地址https://www.toymoban.com/news/detail-551590.html
到了这里,关于MySQL物理文件----日志文件(错误日志、通用查询日志、二进制日志、慢查询日志)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!