NoteOfMySQL-14-日志管理

一、MySQL日志

日志是MySQL数据库的重要组成部分,日志文件记录了MySQL数据库的日常操作和错误信息,可以通过分析这些日志文件了解MySQL数据库的运行情况。
MySQL数据库常见的日志文件包括错误日志、二进制日志、慢查询日志、通用查询日志四种。

日志文件类型 说明 错误日志 记录服务器启动、关闭、运行错误及时间调度器运行事件的信息等 二进制日志 以
二进制文件

的形式记录数据库中的操作,但不记录查询语句 慢查询日志 记录执行时间超过指定时间的操作 通用查询日志 记录用户所有的操作信息

  • 默认情况下,MySQL数据库只启动了错误日志功能。
  • 除二进制日志文件外,其他日志都是文本文件。
  • 日志文件通常存储在MySQL数据库的数据目录下。
  • 启动日志功能会降低MySQL数据库的执行速度。
  • 日志文件会占用较大的硬盘空。当用户量非常大、操作非常频繁时,日志问价的存储空间甚至比数据库文件的还要大。

二、错误日志管理

1. 启动错误日志

在默认情况下,错误日志功能是默认开启的,且不能禁止。但可以通过修改 my.ini文件来修改错误日志功能的配置。

修改错误日志文件的存放位置
log-error=file_name

标识警告信息是否一并记录到错误日志中
log-warnings=int_num

在默认情况下,错误日志文件存放在安装路径的 data目录下,文件名为 hostname.err

  • 通过设置 log-error可以修改错误日志文件的存放位置。
  • 设置 log-warnings的具体值如下所示:

int_num 说明 0 不记录警告信息 1 记录警告信息到日志文件中,mysql-5.5版本默认值为1 大于1 “失败的连接”的信息和创建新连接时”拒绝访问”类的错误信息也会被记录到错误日志中,mysql-5.7版本默认值为2

2. 查看错误日志

用于错误日志文件是文本文件,可以直接打开文件进行查看,文件路径可以通过下面命令获取:

-- 查看log-error: 下面两种方法都可
show variables like 'log_error';
select @@log_error;

-- 查看log-warnings: 下面两种方法都可
show variables like 'log_warnings';
select @@log_warnings;

NoteOfMySQL-14-日志管理

3. 删除错误日志

运行下面命令后,数据库系统会自动常见一个新的错误日志文件,并把旧的文件改名为 hostname.err-old

mysqladmin -u root -p flush-logs

三、二进制日志管理

二进制日志也叫变更日志(update log),用来记录所有用户对数据库的操作,若长时间开启,文件会占用较大的磁盘凯南。但当数据库发生故障时,可以通过此文件查看一段时间内用户所作的操作,结合数据库备份技术,即可在线用户的操作,使数据库恢复。

1. 启动二进制日志

1.1 查看二进制日志功能状态

-- 查看二进制日志功能是否启用
show variables like 'log_bin';

-- 查看二进制日志文件列表
show binary logs;

-- 查看当前使用的二进制日志文件
show master status;

NoteOfMySQL-14-日志管理

1.2 启动二进制日志功能

开启二进制日志功能同样是修改安装路径下的 my.ini文件,之后 重启mysql服务器即可。

在[mysqld]下添加
server-id=1
log-bin[=dir_name\[filename]]

其中, dir_name表示二进制文件的存放路径,默认存放在安装路径的 data目录下; filename表示二进制文件的文件名,默认值为 hostname-bin.number,number的形式为000001、000002等。

  • 每次重启MySQL服务都会生成新的二进制文件,其中number会不断递增。
  • 二进制日志文件包括 filename.number这类文件和 filename.index文件,后者存储所有二进制日志文件的清单。

特别注意:二进制日志文件最好不要与数据库的数据文件存放在同个硬盘上。

2. 查看二进制日志

查看二进制日志文件需要在cmd命令行下,且需要将切换到存放二进制日志文件所在的目录下,因为 mysqlbinlog将在当前目录下查找指定的二进制日志文件。

mysqlbinlog filename.number

3. 删除二进制日志

删除二进制日志文件需要登录mysql服务器后进行操作。

3.1 删除所有二进制日志文件

执行完下面语句后,会删除所有的文件,并创建新的二进制日志文件,number重置为00001。

reset master;

3.2 根据编号删除二进制日志文件

执行完下面语句后,会删除编号小于number的所有文件。

purge master logs to 'filename.number';

3.3 根据创建时间删除二进制日志文件

执行完下面语句后,会删除在指定时间之前的所有文件。

purge master logs before 'yyyy-mm-dd hh:mm:ss';

4. 关闭二进制日志

关闭和开启的方法刚好相反,将 my.ini文件中新增的两行代码删除,然后重启mysql服务器即可。

5. 还原数据库

mysqlbinlog filename.number | mysql -u root -p

6. 实例 —— 启动二进制日志

6.1 修改 my.ini 文件

NoteOfMySQL-14-日志管理

6.2 重启mysql服务器

NoteOfMySQL-14-日志管理

6.3 查看二进制日志功能状态

NoteOfMySQL-14-日志管理

6.4 重启mysql服务

NoteOfMySQL-14-日志管理

6.5 再查看二进制功能状态

在此之前需要退出mysql重新登录>>>

NoteOfMySQL-14-日志管理

6.6 关闭二进制日志功能

直接删除 my.ini文件中刚刚添加的两行代码,重启服务器即可。

四、慢查询日志管理

慢查询日志会记录所有执行时间超过指定时间或未使用索引的语句。

1. 启动慢查询日志

1.1 查看慢查询日志的功能状态

show variables like 'slow_%';

NoteOfMySQL-14-日志管理

1.2 启动慢查询日志

开启慢查询日志功能同样是修改安装路径下的 my.ini文件,之后 重启mysql服务器即可。

在[mysqld]下添加

开启慢查询日志功能
slow_query_log=on
设置慢查询日志文件路径
slow_query_log_file[=dir_name\[filename]]
设置最大执行时间
long_query_time[=num]

其中, dir_name表示慢查询文件的存放路径,默认存放在安装路径的 data目录下; filename表示慢查询文件的文件名,默认值为 hostname-slow.loglong_query_time单位为秒,默认值为10秒。

2. 修改慢查询日志配置

-- 开启或关闭慢查询日志
set global slow_query_log=on/off;
-- 设置最长执行时间
set global long_query_time=num;

3. 查看慢查询日志

用于慢查询日志文件是文本文件,可以直接打开文件进行查看。

4. 删除慢查询日志

4.1 命令行删除

执行下面语句之后,会删除原来的慢查询日志文件并新建新的日志文件。

mysqladmin -u root -p flush-logs

4.2 手动删除

手动删除日志文件后,重启mysql服务器即可。

五、通用查询日志管理

通用查询日志记录了用户所有的操作。

1. 启动通用查询日志

1.1 查看慢查询日志的功能状态

show variables like 'general%';

NoteOfMySQL-14-日志管理

1.2 开启通用查询日志

开启通用查询日志功能同样是修改安装路径下的 my.ini文件,之后 重启mysql服务器即可。

在[mysqld]下添加

开启通用查询日志功能
general_log=1
设置通用查询日志文件路径
general_log_file[=dir_name\[filename]]

其中, dir_name表示慢查询文件的存放路径,默认存放在安装路径的 data目录下; filename表示慢查询文件的文件名,默认值为 hostname.log

2. 查看通用查询日志

用于通用查询日志文件是文本文件,可以直接打开文件进行查看。

3. 删除通用查询日志

3.1 命令行删除

执行下面语句之后,会删除原来的慢查询日志文件并新建新的日志文件。

mysqladmin -u root -p flush-logs

3.2 手动删除

手动删除日志文件后,重启mysql服务器即可。

注意

用于 mysqladmin -u root -p flush-logs是删除错误日志、慢查询日志、通用查询日志的命令,若只删除一个时,其他需要做好备份,以免错删。

参考资料

简书:错误日志
付杰博客:MySQL二进制日志详解

Original: https://www.cnblogs.com/bpf-1024/p/14147570.html
Author: 步平凡
Title: NoteOfMySQL-14-日志管理

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/612027/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • TCP/IP方法安装打印机

    在计算机安装打印机驱动和添加打印机 (TCP/IP 方法 ) 一:打印机的型号和驱动。 1.1 :如何知道自己的打印机是什么品牌和型号?: 通过观察打印机表面的logo 或者其他文…

    Linux 2023年6月13日
    0126
  • 【Leetcode】64. 最小路径和

    给定一个包含非负整数的 m x n网格 grid,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动…

    Linux 2023年6月6日
    0106
  • Linux安装管理

    Linux系列 包管理工具 单个软件包 管理工具 RedHat系列 Redhat Centos Fedora yum rpm .rpm Debian系列 Ubuntu apt-ge…

    Linux 2023年6月8日
    0104
  • 云主机搭建WordPress个人博客

    安装宝塔控制面板 宝塔面板是一个简单、好用的面板,它的功能就是将LNMP和服务器的各种管理集成到一个可视化的WEB环境来管理,通过面板,我们普通人不需要掌握具体的技术,只需要动动鼠…

    Linux 2023年6月8日
    0114
  • Linux at命令详解

    大家好,我是良许。 生活中,我们有太多场景需要使用到闹钟,比如早上 7 点起床,下午 4 点开会,晚上 8 点购物,等等。 在 Linux 系统里,我们同样也有类似的需求。比如我们…

    Linux 2023年6月14日
    082
  • .Net FW项目跑不起来且无Error信息

    阅文时长 | 0.17分钟字数统计 | 280.8字符主要内容 | 1、引言&背景 2、分析步骤 3、解决方案 4、声明与参考资料『.Net FW项目跑不起来且无Error…

    Linux 2023年6月13日
    0108
  • Greenplum数据库基本操作命令大全-完善ing

    Greenplum数据库基本操作命令大全 select * from pg_stat_activity; datid –16388 datname –hfamlgpdbs &a…

    Linux 2023年6月11日
    0106
  • 在vue中使用websocket回调函数中调用其他methods函数报错Uncaught TypeError: this.getHistory is not a function at WebSocket.ws.onmess解决方案

    1、报错详情 在vue中,使用了websocket类,在websocket的onmessage回调函数中调用methods的 getHistory 函数,发现一调用就报错 Unca…

    Linux 2023年6月8日
    097
  • Oracle中row_number()、rank()、dense_rank() 的区别

    row_number的用途非常广泛,排序最好用它,它会为查询出来的每一行记录生成一个序号,依次排序且不会重复,注意使用row_number函数时必须要用over子句选择对某一列进行…

    Linux 2023年6月14日
    0102
  • jmeter并发设置的原理

    简介 广义并发 绝对并发 简介 ​ 性能测试过程中是否需要进行同步定时器的设置,需要根据实际情况来考虑。 ​ 举个栗子来讲是我们的双十一秒杀活动,这时候就必须实现请求数量达到一定数…

    Linux 2023年6月14日
    0151
  • OrchardCore Headless建站拾遗

    书接上回,OrchardCore的基本设置写了,但是有一说一,这个东西还是挺复杂的,如果需要构建一个简单的企业网站,还需要干点别的活。 本文考虑在尽量少编程的基础上,完成一个Hea…

    Linux 2023年6月6日
    0107
  • 【设计模式】Java设计模式-单例模式

    【设计模式】Java设计模式 – 单例模式 😄 不断学习才是王道🔥 继续踏上学习之路,学之分享笔记👊 总有一天我也能像各位大佬一样🌝分享学习心得,欢迎指正,大家一起学习…

    Linux 2023年6月6日
    0163
  • 重启电脑后Mysql无法在cmd运行

    问题描述:如果在cmd窗口显示 ‘mysql’不是内&#x90…

    Linux 2023年6月15日
    0149
  • MySQL Performance Schema详解

    MySQL的performance schema 用于监控MySQL server在一个较低级别的运行过程中的资源消耗、资源等待等情况。 1 performance schema特…

    Linux 2023年6月13日
    0100
  • iostream 未完

    声明控制从标准流读取和写入到标准流的对象。 通常是唯一需要从 C++ 程序执行输入和输出的标头。 #include <iostream></iostream&gt…

    Linux 2023年6月7日
    073
  • linux常用指令记录

    给目标文件夹执行权限:chmod -R 777 html du -sh . [对当前目录下所有的目录和文件的大小进行汇总,-s表示汇总,-h表示以KB, MB, GB, TB格式进…

    Linux 2023年6月6日
    0125
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球