一、错误日志

  错误日志是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-日志的更多相关文章

  1. mysql运维-二进制日志BINARY LOG清理

       1.1 方法1:PURGE MASTER LOGS     语法: PURGE { BINARY | MASTER } LOGS { TO 'log_name' | BEFORE datetim ...

  2. MySQL运维工具

    Mysql运维过程中设计的各类工具以及各个场景的的命令行的分类.大体总结如下的xmind图片(.xmind附件 加 Q1123654342). 大体上分为: 实例管理工具.高可用工具.慢日志查询工具. ...

  3. mysql运维必会的一些知识点整理

    (1)基础笔试命令考察 1.开启MySQL服务 /etc/init.d/mysqld start service mysqld start systemctl start mysqld 2.检测端口是 ...

  4. mysql运维

    反反复复装了好多次的mysql,上学的时候从来没有考虑过稳定性,装起来,能跑通,增删改查没有问题万事大吉.参与工作后参与平台搭建和维护,平台的稳定性是首先必须要考虑的问题,之前装mysql使用经历了密 ...

  5. 美图秀秀DBA谈MySQL运维及优化

    美图秀秀DBA谈MySQL运维及优化 https://mp.weixin.qq.com/s?__biz=MzI4NTA1MDEwNg==&mid=401797597&idx=2& ...

  6. 转:三思!大规模MySQL运维陷阱之基于MyCat的伪分布式架构

    在微信公众号看到一篇关于mycat的文章,觉得分析的很不错,给大家分享一下 三思!大规模MySQL运维陷阱之基于MyCat的伪分布式架构 原文链接:https://mp.weixin.qq.com/s ...

  7. mysql运维必会的一些知识点整理(转自民工哥)

    (1)基础笔试命令考察 1.开启MySQL服务 /etc/init.d/mysqld start service mysqld start systemctl start mysqld 2.检测端口是 ...

  8. 搭建稳固的MySQL运维体系

    MySQL 监控要点 MySQL 监控要点,主要涉及服务器和 MySQL 两个方向的监控告警. 在这两个监控告警方向需要重点关注监控策略.监控趋势图及报警方式. 监控策略指的是每个监控项的告警阈值,例 ...

  9. 公司没有 DBA,Mysql 运维自己来

    如果你的公司有 DBA,那么我恭喜你,你可以无视 Mysql 运维.如果你的公司没有 DBA,那你就好好学两手 Mysql 基本运维操作,行走江湖,防身必备. 环境:CentOS7 版本: 一.虚拟机 ...

  10. MySQL运维开发相关的所有工具

    http://www.ruzuojun.com/topic/592.html   Percona Toolkit 安装使用 http://cenalulu.github.io/mysql/mysql- ...

随机推荐

  1. 【有奖调研】HarmonyOS新物种,鸿蒙流量新阵地——元服务邀你来答题!

    "聊技术无话不谈,一起来吹吹元服务!畅聊你对元服务的想法,说不定,你就能撬动元服务的爆发增长!" 元服务(即原子化服务)是华为"轻量化"服务的新物种,可提供全新 ...

  2. @SafeVarargs注解的使用

    在声明具有模糊类型(比如:泛型)的可变参数的构造函数或方法时,Java编译器会报unchecked警告.鉴于这些情况,如果程序员断定声明的构造函数和方法的主体不会对其varargs参数执行潜在的不安全 ...

  3. 前端vue uni-app百度地图定位组件,显示地图定位,标记点,并显示详细地址

    快速实现前端百度地图定位组件,显示地图定位,标记点,并显示详细地址; 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12677 ...

  4. 8. 自定义映射resultMap

    ‍ 在 Mybatis 中,resultType 和 resultMap 都用于定义查询结果的映射关系.它们的使用场景如下: resultType resultType 用于指定返回结果的数据类型,通 ...

  5. XXE漏洞详解

    XML外部实体注入--XXE漏洞详解 简单来说一下这个XXE漏洞,在这之前我也阅读了很多关于XXE漏洞的文章,发现有一小部分文章题目是 "XXE外部实体注入" 这样的字眼,我想这样 ...

  6. SQL ERVER 表转化为C#实体(SQL 代码)

    本文推出SqlServer表转化为实体的sql代码 在VS中有可以自带生成实体类的快捷操作,但是生成的代码比较杂乱,很多东西都是不需要的,一个一个去敲又很浪费时间,关键太无聊了 在闲暇之余写一份代码供 ...

  7. 音视频开发进阶——YUV与RGB的采样与存储格式

    在上一篇文章中,我们带大家了解了视频.图像.像素和色彩之间的关系,还初步认识了两种常用的色彩空间,分别是大家比较熟悉的 RGB,以及更受视频领域青睐的 YUV.今天,我们将继续深入学习 RGB.YUV ...

  8. 【转载】AF_XDP技术详解

    原文信息 作者:rexrock 出处:https://rexrock.github.io/post/af_xdp1/ 目录 1. 用户态程序 1.1 创建AF_XDP的socket 1.2 为UMEM ...

  9. 使用docker安装的tomcat部署activiti-app.war、activiti-admin.war失败(ClassNotFoundException)

    背景 一直以来习惯用docker配置一些本地学习环境,许多教程配置activiti的方式都是通过复制activiti的war包部署在tomcat中,我尝试了一下通过docker的方式遇到了一些不易察觉 ...

  10. Debian12配置NTP时间同步

    环境 查看系统版本:lsb_release -a 配置NTP时间同步 下面的配置需要用到管理员权限,可以使用su切换到管理员权限. 查看/修正 时区 查看系统时区:timedatectl 如果时区不是 ...