Mysql 5.7开启binlog日志

Mysql 5.7开启binlog日志

前言

binlog是MySQL的二进制日志,并且是MySQL中最重要的日志。binlog记录了对MySQL数据库执行更改的所有操作,包括对数据库表结构的变更,对数据的变更,例如CREATE、ALTER TABLE、INSERT、UPDATE、DELETE…,但是不会记录查询语句select。需要注意的是,如果是update操作,即使是没有数据更新,也会记录在binlog日志中,binlog日志是以事件形式记录,并且还包含语句所执行的消耗时间。

查看binlog是否开启

show variables like '%log_bin%';

Mysql 5.7开启binlog日志

开启binlog

修改mysql配置文件

[mysqld]
log-bin=mysql-bin
server_id=1

Mysql 5.7开启binlog日志

重新启动mysql

windows系统
net stop mysql   # 停止mysql服务
net start mysql  # 启动mysql服务
Linux系统
service mysql stop # 停止mysql服务
service mysql start # 启动mysql服务
service mysql restart   # 重启mysql服务

扩展

应用

  1. 主从复制

    master端开启binlog,master把二进制日志传递给slaves来达到master-slave数据保持一致。

  2. 数据恢复

    可以通过mysqlbinlog工具解析binlog来恢复数据。

binlog日志常用命令

  1. 查看所有的binlog日志列表
show master logs;
  1. 查看master状态,即最后一个binlog日志的编号名称,及其最后一个操作时间pos结束点值
show master status;
  1. flush刷新binlog日志,此刻之后会产生一个新编号的binlog日志文件
flush logs;

bin-log日志存放地址

binlog存放在/var/lib/mysql里面的,如果是docker,则在相应的映射目录

Mysql 5.7开启binlog日志

配置存放位置、过期时间

在MySQL配置文件my.cnf或者my.ini中[mysqld]标签内修改

配置定时清理
expire_logs_days = 5
配置修改后的日志路径
log-bin=/home/logs/mysql-bin

Mysql 5.7开启binlog日志

配置每个日志文件的大小

在MySQL配置文件my.cnf或者my.ini中[mysqld]标签内修改

binlog每个日志文件大小
max_binlog_size = 100m

binlog格式

binlog日志格式,MySQL默认采用的是STATEMENT,建议使用MIXED
binlog_format = MIXED
  1. STATEMENT模式(SBR)

    基于SQL语句的复制(statement-based replication),每一条会修改数据的sql语句都会记录到binlog中。 优点:

  2. 不需要记录每一条sql语句和每一行的数据变化,减少了binlog日志量,节约IO,提高性能 缺点:
  3. 某些情况会导致master-slave中的数据不一致,例如sleep(),last_insert_id()等
  4. ROW模式(RBR)

    基于行的复制(row-based replication),不记录每条sql语句的上下文信息,仅记录哪条数据被修改了,修改成什么样。 优点:

  5. 任何情况都可以复制,并且不会出现特定情况下存储过程、function等调用或者触发无法被正确复制的问题 缺点:
  6. binlog日志文件会非常大
  7. master上执行update语句时,所有变化都会写到binlog里面,SBR只会写一次,所以会导致频繁发生binlog的并发写问题
  8. MIXED模式

    上面两种模式的混合使用,一般的复制使用STATEMENT模式保存binlog,对于STATEMENT模式无法复制的操作使用ROW模式保存binlog,MySQL会根据执行的SQL语句选择日志保存方式。

如有侵权请立即与我们联系,我们将及时处理,联系邮箱:865934097@qq.com。

原文链接: https://monkey.blog.xpyvip.top/archives/Mysql57开启binlog日志

Original: https://www.cnblogs.com/aibianchengya/p/16683849.html
Author: 程序猿的代码
Title: Mysql 5.7开启binlog日志

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

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

(0)

大家都在看

  • mycat数据库集群系列之数据库多实例安装

    mycat 数据库集群系列之数据库多实例安装 最近在梳理数据库集群的相关操作,现在花点时间整理一下关于mysql数据库集群的操作总结,恰好你又在看这一块,供一份参考。本次系列终结大…

    Linux 2023年6月14日
    0126
  • ASP.NET Core 3.0 : 二十八. 在Docker中的部署以及docker-compose的使用

    本文简要说一下ASP.NET Core 在Docker中部署以及docker-compose的使用 (ASP.NET Core 系列目录)。 系统环境为CentOS 8 。 一、概…

    Linux 2023年6月7日
    0139
  • EmuELEC 4.3 安装和乐视手柄 LeWGP-201 evremap问题解决

    一年多前安装了EmuELEC3.9之后, 就一直没有再更新过, 平时玩玩小游戏也很正常. 昨天心血来潮想把吃灰的乐视手柄用起来, 结果发现3.9里面没有evremap 命令. 猜测…

    Linux 2023年5月27日
    0329
  • Python之面向对象-反射

    一、什么是反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问,检测和修改它本省状态或行为的一种能力(自省)。这一概念的提出很快引发了计算机科学领域关于应用反…

    Linux 2023年6月14日
    0126
  • (读书笔记)基于CMMI的软件工程及实训指导 第13-16章

    一、软件测试 软件测试是为了发现程序中的错误而执行的过程。测试只能证明软件有错,而不能保证软件程序没错。 1. 软件版本 Alpha版 公司内测版本 Beta版 对外公测版本 发布…

    Linux 2023年6月14日
    0114
  • MySQL之视图、触发器、事务、索引及其他知识补充

    一、视图 视图是将SQL语句的查询结果当做虚拟表实体化保存起来,以后可以反复使用 create view teacher2course as select * from teach…

    Linux 2023年6月14日
    0125
  • ElasticSearch7.2安装

    下载JDK压缩包,通过SFTP客户端(WinSCP)上传到CentOS7相应的目录下。然后解压JDK,解压命令为: tar -zxvf jdk-12.0.2_linux-x64_b…

    Linux 2023年6月7日
    0128
  • OpenSSH制作rpm包和升级OpenSSH过程中遇到的问题

    百度网盘:https://pan.baidu.com/s/1gqpH2xeOkYHJ0CiztbmqoQ 提取码:imfg cp x11-ssh-askpass-1.2.4.1.t…

    Linux 2023年6月7日
    0112
  • Markdown基础语法

    Markdown语法 ## 欢迎使用Markdown编辑器 你好! 这是你第一次使用 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下M…

    Linux 2023年6月14日
    0126
  • 驳”一切不谈考核的管理都是扯淡”

    一、引子 以我个人的从业经验认为,研发人员的量化考核,始终是一个世界难题。正巧不久前在园子里看到了 “一切不谈考核的管理都是扯淡!”一文(下面简称为&#82…

    Linux 2023年6月13日
    0122
  • JDK的环境变量

    jdk下载并配置下载jdk下图是自己资源管理器中jdk的安装路径,双击然后next就好,不需要改什么配置 手里没有安装包的,下载地址在这里 :https://www.oracle….

    Linux 2023年6月13日
    093
  • 删除MySQL数据用户

    mysql删除用户的方法: 1、使用”drop user 用户名;”命令删除; 2、使用”delete from user where user…

    Linux 2023年6月13日
    0107
  • Redis内存满了怎么办

    Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小。 1、通过配置文件配置 通过在Red…

    Linux 2023年5月28日
    096
  • gitlab拉取指定目录

    1.新建目录 mkdir git 2.初始化本地目录 git init 3.启用过滤的配置项 git config core.sparsecheckout true 4.想要拉取哪…

    Linux 2023年6月6日
    0118
  • Docker简介与安装

    Docker简介与安装 Docker overview | Docker Documentation 官方文档 1.Docker简介 Docker是一个用于开发、发布和运行应用程序…

    Linux 2023年6月13日
    0111
  • 【开源打印组件】vue-plugin-hiprint初体验

    vue-plugin-hiprint的学习与应用 😄 生命不息,写作不止🔥 继续踏上学习之路,学之分享笔记👊 总有一天我也能像各位大佬一样🏆 一个有梦有戏的人 @怒放吧德德🌝分享学…

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