MySQL运维1-日志
一、错误日志
错误日志是MySQL中最重要的日志之一,它记录了当MySQL启动和停止时,以及服务器在运行过程中发生的任何严重错误时的相关信息,当数据库出现任何故障导致无法正常使用时,建议首先查看此日志
错误日志默认是开启的,默认存在目录/var/log/,默认的日志文件名为mysqld.log, 但是这些都是可以配置的,可以通过指令查看日志位置:show variables like ''%log_error%

说明1:我的这里错误日志就不是默认路径也不是默认名称,但是没关系,根据这个变量查询的结果查询就可以了。


二、二进制日志
2.1 二进制日志(binlog)
记录了所有的DDL(数据定义语言)语句和DML(数据操作语言)语句,但不包括数据查询(select,show)等语句
2.2 作用
- 灾难时的数据恢复
- MySQL的主从赋值,在MySQL8版本中,默认的二进制日志是开启的
- 通过 show variables like "%log_bin%" 可以查看具体的日志位置

2.3 日志格式
MySQL服务器中提供了多种格式来记录二进制日志,具体格式及特点如下:
STATEMENT:基于SQL语句的日志记录,记录的是SQL语句,对数据进行修改的SQL都会记录在日志文件中
ROW:基于行的日志记录,记录的是每一行的数据变更。 (默认)
MIXED:混合了STATEMENT 和 ROW 两种格式,默认采用STATEMENT, 在某些特殊情况下会自动切换为ROW进行记录
通过 show variables like "%binlog_format%"; 可以查看

2.4 修改日志格式
要修改日志格式,需要在MySQL的配置文件设置 binlog_format = "XXXX",然后重启MySQL即可

重启MySQL

修改成功
2.5 日志查看
由于日志是以二进制方式存储的,不能直接读取,需要通过二进制日志查询工具 mysqlbinlog 来查看,
具体语法:mysqlbinlog [options] logfilename
options选项
-d:指定数据名称,只列出指定的数据相关操作
-0:忽略掉日志中的前n行命令
-v:将行事件(数据变更)重构为SQL语句
-vv:将行事件(数据变更)重构为SQL语句,并输出注释信息
2.6 基于ROW的binlog示例

说明1:默认 binlog_fromat为 ROW 模式的情况下 我们查看binlog日志的时候要加上 -v参数即:mysqlbinlog -v binlog.000033

说明2:基于ROW类型的binlog日志是,记录的每一行的变化。
2.7 基于STATEMENT的binlog示例

说明1:同样再次修改age数据

说明2:基于STATEMENT类型的binlog日志,记录的SQL语句的变化而不是,每一行的变化
2.8 日志删除
对于比较繁忙的业务系统,每天生成的binlog数据巨大,如果长时间不清楚,将会占用大量磁盘空间,可以通过一下几种方式清理日志
- reset master :删除全部binlog日志,删除之后,日志编号,将重新从binlog.000001开始
- purge master logs to 'binlog.xxxxxx':删除xxxxxx编号之前的所有日志
- purge master logs before 'yyyy-mm-dd HH:MM:SS':删除日志 'yyyy-mm-dd HH:MM:SS'之前产生的所有日志
- 也可以在MySQL的配置文件中配置二进制日志的过期时间,设置了之后,二进制日期过期会自动删除:show variables like "%binlog_expire_logs_seconds%"; 可以查看
示例:

说明1:删除binlog.000030编号以前的日志

说明2:按照时间点删除


说明3:binlog的过期时间单位是秒,默认是30天
三、查询日志
查询日志中记录了客户端的所有操作语句,而二进制日志不包含查询数据的SQL语句,默认情况下,查询日志是未开启的,如果需要开启查询日志,可以设置一下配置

说明1:general_log 默认是关闭的,可以通过修改MySQL配置文件配置。

说明2:修改好了配置文件要重启MySQL才会生效


说明3:对数据库进行数据库查询,表查询,数据更改等操作

说明4:刚才的操作都在查询日志中可以找到。
说明5:因为该日志记录的内容比较多,在比较繁忙的系统中可以不用启动该日志。
四、慢查询日志
慢查询日志记录了所有执行时间查过参数long_query_time设置值并且扫描记录数不小于min_examined_row_limit的所有的SQL语句的日志。long_query_time默认为10秒,最小为0,精度可以到微秒
通过MySQL配置文件可以配置是否开启,配置后重启MySQL即可生效

说明1:默认是关闭的

说明2:修改配置文件 ,然后重启MySQL

说明3:慢查询启动成功

说明4:这次查询耗时4.02秒

说明5:然后打开慢查询日志就可以查看到这里查询的情况,通过慢查询日志,我们主要是可以定位到那条语句执行比较慢,方便我们做精准的SQL优化
MySQL运维1-日志的更多相关文章
- mysql运维-二进制日志BINARY LOG清理
1.1 方法1:PURGE MASTER LOGS 语法: PURGE { BINARY | MASTER } LOGS { TO 'log_name' | BEFORE datetim ...
- MySQL运维工具
Mysql运维过程中设计的各类工具以及各个场景的的命令行的分类.大体总结如下的xmind图片(.xmind附件 加 Q1123654342). 大体上分为: 实例管理工具.高可用工具.慢日志查询工具. ...
- mysql运维必会的一些知识点整理
(1)基础笔试命令考察 1.开启MySQL服务 /etc/init.d/mysqld start service mysqld start systemctl start mysqld 2.检测端口是 ...
- mysql运维
反反复复装了好多次的mysql,上学的时候从来没有考虑过稳定性,装起来,能跑通,增删改查没有问题万事大吉.参与工作后参与平台搭建和维护,平台的稳定性是首先必须要考虑的问题,之前装mysql使用经历了密 ...
- 美图秀秀DBA谈MySQL运维及优化
美图秀秀DBA谈MySQL运维及优化 https://mp.weixin.qq.com/s?__biz=MzI4NTA1MDEwNg==&mid=401797597&idx=2& ...
- 转:三思!大规模MySQL运维陷阱之基于MyCat的伪分布式架构
在微信公众号看到一篇关于mycat的文章,觉得分析的很不错,给大家分享一下 三思!大规模MySQL运维陷阱之基于MyCat的伪分布式架构 原文链接:https://mp.weixin.qq.com/s ...
- mysql运维必会的一些知识点整理(转自民工哥)
(1)基础笔试命令考察 1.开启MySQL服务 /etc/init.d/mysqld start service mysqld start systemctl start mysqld 2.检测端口是 ...
- 搭建稳固的MySQL运维体系
MySQL 监控要点 MySQL 监控要点,主要涉及服务器和 MySQL 两个方向的监控告警. 在这两个监控告警方向需要重点关注监控策略.监控趋势图及报警方式. 监控策略指的是每个监控项的告警阈值,例 ...
- 公司没有 DBA,Mysql 运维自己来
如果你的公司有 DBA,那么我恭喜你,你可以无视 Mysql 运维.如果你的公司没有 DBA,那你就好好学两手 Mysql 基本运维操作,行走江湖,防身必备. 环境:CentOS7 版本: 一.虚拟机 ...
- MySQL运维开发相关的所有工具
http://www.ruzuojun.com/topic/592.html Percona Toolkit 安装使用 http://cenalulu.github.io/mysql/mysql- ...
随机推荐
- 【有奖调研】HarmonyOS新物种,鸿蒙流量新阵地——元服务邀你来答题!
"聊技术无话不谈,一起来吹吹元服务!畅聊你对元服务的想法,说不定,你就能撬动元服务的爆发增长!" 元服务(即原子化服务)是华为"轻量化"服务的新物种,可提供全新 ...
- @SafeVarargs注解的使用
在声明具有模糊类型(比如:泛型)的可变参数的构造函数或方法时,Java编译器会报unchecked警告.鉴于这些情况,如果程序员断定声明的构造函数和方法的主体不会对其varargs参数执行潜在的不安全 ...
- 前端vue uni-app百度地图定位组件,显示地图定位,标记点,并显示详细地址
快速实现前端百度地图定位组件,显示地图定位,标记点,并显示详细地址; 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12677 ...
- 8. 自定义映射resultMap
在 Mybatis 中,resultType 和 resultMap 都用于定义查询结果的映射关系.它们的使用场景如下: resultType resultType 用于指定返回结果的数据类型,通 ...
- XXE漏洞详解
XML外部实体注入--XXE漏洞详解 简单来说一下这个XXE漏洞,在这之前我也阅读了很多关于XXE漏洞的文章,发现有一小部分文章题目是 "XXE外部实体注入" 这样的字眼,我想这样 ...
- SQL ERVER 表转化为C#实体(SQL 代码)
本文推出SqlServer表转化为实体的sql代码 在VS中有可以自带生成实体类的快捷操作,但是生成的代码比较杂乱,很多东西都是不需要的,一个一个去敲又很浪费时间,关键太无聊了 在闲暇之余写一份代码供 ...
- 音视频开发进阶——YUV与RGB的采样与存储格式
在上一篇文章中,我们带大家了解了视频.图像.像素和色彩之间的关系,还初步认识了两种常用的色彩空间,分别是大家比较熟悉的 RGB,以及更受视频领域青睐的 YUV.今天,我们将继续深入学习 RGB.YUV ...
- 【转载】AF_XDP技术详解
原文信息 作者:rexrock 出处:https://rexrock.github.io/post/af_xdp1/ 目录 1. 用户态程序 1.1 创建AF_XDP的socket 1.2 为UMEM ...
- 使用docker安装的tomcat部署activiti-app.war、activiti-admin.war失败(ClassNotFoundException)
背景 一直以来习惯用docker配置一些本地学习环境,许多教程配置activiti的方式都是通过复制activiti的war包部署在tomcat中,我尝试了一下通过docker的方式遇到了一些不易察觉 ...
- Debian12配置NTP时间同步
环境 查看系统版本:lsb_release -a 配置NTP时间同步 下面的配置需要用到管理员权限,可以使用su切换到管理员权限. 查看/修正 时区 查看系统时区:timedatectl 如果时区不是 ...