mysql日志

错误日志

记录了当mysql启动和停止时,以及服务器在运行过程中发生的任何严重错误时的相关信息,该日志是默认开启的,查看日志位置

show variables like '%log_error%';

/var/log/mysqld.log就是mysql的错误日志的位置

二进制日志

二进制日志记录了所有的DDL(数据定义语句)和DML(数据操纵语句)不包括数据查询(SELECT、SHOW)语句。默认是开启状态,查看日志位置:

show variables like '%log_bin%'

其中log_bin_basename日志文件的位置为目录/var/lib/mysql/bin下的binlog开头的文件

log_bin_index日志的索引文件位置

日志格式

|-----------|--------------------------------|
| STATEMENT | 记录对数据进行修改的SQL语句 |
| ROW(默认) | 记录每行的数据变更 |
| MIXD | 默认采用STATEMENT,特殊情况下会切换为ROW进行记录 |

查看当前的日志格式

show VARIABLES like '%binlog_format%';

日志默认过期时间30天,可以通过命令进行修改

日志查看

需要通过查询工具mysqlbinlog来进行查看

mysqlbinlog [参数选项] logfilename

参数选项:

-d 指定数据库名称,只列出指定的数据库相关操作。

-o 忽略掉日志中的前n行命令。

-v 将行事件(数据变更)重构为SQL语句

-vv 将行时间(数据变更)重构为SQL语句,并输出注释信息

查询日志

查询日志中记录了客户端的所有操作语句。默认未开启

查看查询日志的配置

show variables like '%general%';

通过修改mysql的配置文件my.cnf

general_log=1

general_log_file=/var/lib/mysql/mysql_query.log

general_log=1表示打开查询日志

general_log_file用于指定日志文件的位置,默认为localhost.log

然后重启mysql服务即可

慢查询日志

记录了所有执行时间超过参数long_query_time并且扫描记录数不小于min_examined_row_limit的所有SQL语句的日志,默认未开启,long_query_time默认为10秒

开启方法和查询日志一样也是在my.cnf文件中添加配置信息,然后重启服务即可

#打开慢查询日志

slow_query_log=1

#执行时间参数

long_query_time=10

相关推荐
TDengine (老段)13 分钟前
携手桂冠电力、南网储能、中能拾贝,TDengine 三项案例入选“星河奖”
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
阿坤带你走近大数据13 分钟前
Oracle中如何监控SQL执行时间?
数据库·sql·oracle
乘凉~14 分钟前
【Linux作业】CentOS 7下MySQL数据库安装与数据导入实操项目报告
linux·数据库·centos
q行18 分钟前
MySQL学习日志--表之间的关系
数据库·学习·mysql
MoonBit月兔23 分钟前
海外开发者实践分享:用 MoonBit 开发 SQLC 插件(其三)
java·开发语言·数据库·redis·rust·编程·moonbit
电商API_1800790524735 分钟前
进阶篇:电商商品评论情感分析 + 关键词挖掘(Python NLP 实战)
大数据·开发语言·网络·数据库·人工智能
麦麦鸡腿堡37 分钟前
MySQL_INSERT UPDATE DELETE语句
数据库·mysql
老李四39 分钟前
深入理解MySQL事务:特性、原理与实践
数据库·mysql
洋生巅峰42 分钟前
股票爬虫实战解析
爬虫·python·mysql
SelectDB技术团队42 分钟前
慢 SQL 诊断准确率 99.99%,天翼云基于 Apache Doris MCP 的 AI 智能运维实践
大数据·数据库·人工智能·sql·apache