Mysql运维篇(一) 日志类型

一路走来,所有遇到的人,帮助过我的、伤害过我的都是朋友,没有一个是敌人,如有侵权请留言,我及时删除。

一、mysql相关日志

首先,我们能接触到的,一般我们排查慢查询时,会去看慢查询日志。如果做过数据备份会恢复的,可能接触或用过BinLog。那还有其他的吗?对MySQL原理比较了解的,应该知道还有Redo Log和Undo Log。这些都是比较常见:慢查询日志、Binlog、Redo Log、Undo Log。

其实,MySQL中还有:错误日志(errorlog)、一般查询日志(general log)、中继日志(relay log),只是这些大家接触少点。

总结下,MySQL中一共七种日志,分别为:慢查询日志、Binlog、Redo Log、Undo Log、错误日志(errorlog)、一般查询日志(general log)、中继日志(relay log)。

1、错误日志 log_error

mysql> show variables like '%log_error%';

2、二进制日志 BINLOG

mysql> show variables like '%bin_log%';

2.1、使用mysqlbinlog 查看MySQL默认的二进制格式

mysql binlog参数详解_mysqlbinlog参数-CSDN博客

mysql> show variables like '%binlog_format%';

使用mysqlbinlog 查看MySQL binlog ROW格式的二进制日志

示例:创建一张销售表,并在binlog日志中找到SQL执行记录

CREATE TABLE sales (

id INT PRIMARY KEY AUTO_INCREMENT,

product VARCHAR(50),

quantity INT,

price DECIMAL(10,2)

);

INSERT INTO sales (product, quantity, price) VALUES ('产品A', 10, 9.99);

INSERT INTO sales (product, quantity, price) VALUES ('产品B', 5, 4.99);

INSERT INTO sales (product, quantity, price) VALUES ('产品C', 8, 6.75);

root@mysql8 data# mysqlbinlog -v binlog.000007

2.2、使用mysqlbinlog 查看MySQL binlog STATEMENT格式的二进制日志

配置文件/etc/my.cnf 新增 binlog_format=STATEMENT 重启MySQL

vi /etc/my.cnf

binlog_format=STATEMENT

插入一条语句,并在binlog日志中查看执行的SQL

INSERT INTO sales (product, quantity, price) VALUES ('??D', 9, 8.75)

2.3、清理MySQL-binlog日志文件

示例一:删除binlog.000003之前的日志

mysql> purge master logs to 'binlog.000003';

2.4、MySQL数据设置binlog日志过期时间

mysql> show variables like '%binlog_expire_logs%';

3、MySQL 查询日志

3.1、查询日志默认状态

mysql> show variables like '%general%';

3.2、开启MySQL查询日志,修改my.cnf文件,并重启MySQL服务

vi /etc/my.cnf

---新增如下配置-------

general_log=1

general_log_file=/mysql/data/mysql8.log

root@mysql8 data# systemctl restart mysqld

查看日志状态

mysql> show variables like '%general%';

3.3、查询日志记录的信息

4、慢日志

4.1、查看慢日志的默认配置

4.2、开启慢日志,并修改慢SQL记录时间,重启MySQL生效

root@mysql8 data# vi /etc/my.cnf

----新增配置-----

slow_query_log=1

long_query_time=1

root@mysql8 data# systemctl restart mysqld

4.3、准备测试环境,创建一个1千万数据的test 表

【MySQL】生成1000万条测试数据_生成1000w条mysql数据-CSDN博客

相关推荐
广州灵眸科技有限公司1 小时前
xfce桌面触摸校准:基于灵眸科技EASY-EAl-Orin-Nano
数据库·windows·科技
大耳朵-小飞象3 小时前
电力安全运维的智能密码:BACS如何破解设备全生命周期管理难题,让电网安全“看得见、管得住”?
运维·安全·智慧城市·能耗系统·楼宇智控·未来生活
极客侃科技3 小时前
制造企业 MES/APS 选型:SAP PP/DS 集成、ERP-MES 边界划分与一体化架构要点
运维·架构·制造
Cloud云卷云舒3 小时前
云卷云舒:从Oracle/MySQL迁移到HaishanDB:迁移评估工具核心技术拆解
mysql·oracle·ai-native·haishandb·信创数据库替换
憧憬成为web高手4 小时前
皮卡丘靶场速通--sql 2
数据库·sql·mybatis
段一凡-华北理工大学4 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
oradh6 小时前
Oracle XTTS实现跨版本迁移和升级(Oracle 11g单库升级至19C RAC集群)
数据库·oracle·11g升级19c·xtts跨版本迁移和升级
生活爱好者!6 小时前
我把NAS当作下载机,docker一键部署qb
运维·docker·容器
用户71333585156246 小时前
MySQL - 事务、redo/undo 日志与 MVCC
mysql
z123456789867 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程