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)

大家都在看

  • 软件科学概论复习

    软件的内在特性 系统的三种类型 S系统:有规范定义,可从规范派生 P系统:需求基于问题的近似解,但现实世界保持稳定 什么是设计模式 基于面向对象设计原则总结出的经验模型。 按照模块…

    Linux 2023年6月8日
    0111
  • 软件危机复习

    没有银弹的含义 软件危机:由于软件规模越来越大,软件复杂性越来越高,可靠性问题也越来越突出,传统的个人设计,个人实现的方式不再满足要求,迫切需要改变软件生产方式,提高软件开发效率,…

    Linux 2023年6月8日
    093
  • Centos系统部署nginx1.18.0

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 一、 安装依赖包 yum –y install gcc gcc-c++ openssl openssl-d…

    Linux 2023年5月27日
    0105
  • shell join详解

    首先贴一个,join –help 然后来理解下。 join 【命令选项】 文件1 文件2 //命令选项可以很多, 但文件只能是两个 先从重要的开始说,join 的作用是…

    Linux 2023年5月28日
    078
  • Python3.9.5安装

    基础环境:yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-de…

    Linux 2023年6月6日
    098
  • linux 应用程序直接读写寄存器或物理内存

    1.程序说明: 调试驱动程序时,经常遇到候需要查看或设置寄存器的情况,但是直接更改内核代码又不方便。 这里提供一个应用程序源码能在应用层访问底层寄存器。(网上找到的,进行过更改)。…

    Linux 2023年6月6日
    0194
  • 四、vi/vim编辑器

    vi/vim 模式命令模式编辑模式末行模式home键 行首end键 行尾命令模式切换到编辑模式a 当前字符后输入A 当前行行尾输入i 当前字符前输入I 当前行行首输入o 当前行下一…

    Linux 2023年6月7日
    0112
  • docker 部署etcd

    原文链接:https://www.zhoubotong.site/post/77.html安装docker-compose这里就不介绍了,直接进入正题:创建etcd数据目录(根据需…

    Linux 2023年6月6日
    0117
  • web安全之反向代理配置X-Frame-Options实现防盗链和防止点击劫持攻击

    介绍 http响应头安全策略,从http头文件的方面,利用参数设置开启浏览器的安全策略,来实现相关的安全机制 X-Frame-Options HTTP响&am…

    Linux 2023年6月6日
    0128
  • NGINX压力测试

    Nginx可以作为HTTP服务器和反向代理服务器。反向代理服务器取决于后端服务器的性能,这次只针对HTTP服务器做性能测试。Nginx作为服务器对于网络的性能必然是非常依赖的,尤其…

    Linux 2023年6月14日
    0105
  • linux命令之查找grep

    grep(全称:Global Regular Expression Print)是一种强大的文本搜索工具,它可以使用正则表达式搜索文本,并把匹配的行打印出来。它的使用权限是所有用户…

    Linux 2023年5月27日
    0105
  • 致远 OA 组合 getshell

    测试版本为: 致远 A8-V5 协同管理软件 V6.1SP2 1.获取cookie信息 2….

    Linux 2023年5月28日
    0318
  • typesafe_cb

    callback 回调函数 什么是callback function 如图(来自维基百科),回调函数提供了一种服务,可以由用户决定使用怎么样的服务(登记回调函数)。回调函数机制,提…

    Linux 2023年6月8日
    0108
  • TCP/IP方法安装打印机

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

    Linux 2023年6月13日
    0126
  • 在Linux下的文件IO操作

    系统调用 为什么用户程序不能直接访问系统内核提供的服务,为了更好地保护内核空间,程序的运行空间被划分为内核空间和用户空间(俗称内核状态和用户模式),它们在不同的级别上逻辑上是相互隔…

    Linux 2023年5月27日
    090
  • 关于博客园设置awescnb皮肤教程

    第一步:申请博客园 申请博客园,然后再申请js权限 第二步:设置博客园 页面定制勾选禁止模版使用css 页面定制css代码 .profile-menu{ display: none…

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