首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql log_bin为off

基础概念

log_bin 是 MySQL 中的一个配置选项,用于控制二进制日志(Binary Log)的启用与禁用。二进制日志记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间。这些日志可以用于数据恢复、主从复制等场景。

相关优势

  1. 数据恢复:通过二进制日志,可以恢复数据库到某个特定的时间点。
  2. 主从复制:二进制日志是实现MySQL主从复制的关键,它允许从服务器复制主服务器上的所有更改。
  3. 审计:二进制日志也可以用于审计目的,跟踪数据库中的更改。

类型

MySQL 的二进制日志有两种格式:

  1. 基于语句的复制(Statement-Based Replication, SBR):记录的是修改数据的 SQL 语句。
  2. 基于行的复制(Row-Based Replication, RBR):记录的是每一行数据的更改。
  3. 混合模式复制(Mixed-Based Replication, MBR):默认使用 SBR,但在无法精确复制的情况下切换到 RBR。

应用场景

  • 备份与恢复:定期备份数据库,并在需要时使用二进制日志进行恢复。
  • 高可用性:通过主从复制实现数据库的高可用性。
  • 数据迁移:使用二进制日志进行数据的增量迁移。

问题与解决

如果 log_bin 设置为 off,则 MySQL 将不会记录二进制日志。这可能会导致以下问题:

  1. 无法进行数据恢复:如果发生数据丢失或损坏,没有二进制日志将无法恢复到之前的状态。
  2. 主从复制失败:如果主服务器的二进制日志被禁用,从服务器将无法复制主服务器上的更改。
  3. 审计功能受限:无法跟踪数据库中的更改,影响审计。

原因

  • 可能是出于性能考虑,因为记录二进制日志会增加磁盘 I/O 负担。
  • 可能是误操作或配置错误。

解决方法

  1. 启用二进制日志: 编辑 MySQL 配置文件(通常是 my.cnfmy.ini),找到 [mysqld] 部分,将 log_bin 设置为 on
  2. 启用二进制日志: 编辑 MySQL 配置文件(通常是 my.cnfmy.ini),找到 [mysqld] 部分,将 log_bin 设置为 on
  3. 然后重启 MySQL 服务:
  4. 然后重启 MySQL 服务:
  5. 检查磁盘空间:确保有足够的磁盘空间来存储二进制日志。
  6. 调整日志保留策略:如果担心磁盘空间不足,可以调整日志保留策略,例如设置 max_binlog_sizeexpire_logs_days
  7. 调整日志保留策略:如果担心磁盘空间不足,可以调整日志保留策略,例如设置 max_binlog_sizeexpire_logs_days

参考链接

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MySQL原理 - InnoDB引擎 - 行记录存储 - Off-page 列

本文基于 MySQL 8 在前面的两篇文章,我们分析了 MySQL InnoDB 引擎的两种行记录存储格式: Compact 格式 Redundant 格式 在这里简单总结下: Compact 格式结构...record_type:3 bits,记录类型,普通数据记录000,节点指针类型 001,伪记录首记录 infimum 行为 010,伪记录最后一个记录 supremum 行为 011,1xx 的保留的...每一页大小默认为 16384 Bytes 也就是 16KB(配置 innodb_page_size)。在 MySQL 启动的时候可以修改,只能是 4096,8192,16384 其中的一个。...由此可见 Redundant 行格式中,off-page 的结构其实是: 这样我们会联想到三个问题: 什么时候列会变成 off-page 列?...Compact 中 off-page 列处理 Compact 中对于 off-page 的处理与 Redundant 基本一样,只是由于数据结构不一样: 导致列会变成 off-page 列的临界点不一样

1.7K30
  • MySQL My.cnf参数梳理与延伸 (MYSQL 8 replica 类) 与 技术文章与食色性也

    中的一行最大的尺寸,实际上如果超过这个尺寸也是可以被接受的,默认这个值8192BYTES 2 log_binMySQL中是否开启binlog是通过log_bin来进行控制的,但在MySQL...8.0后,配置中我们还是通过 log_bin来进行控制但在变量里面变成了2个变量来进行控制 实际上,在配置中还是通过 log_bin = /data/mysql-bin 来设置系统的BINLOG的位置与路径和开启与否...但需要注意的是BINLOG 的开启不在通过log_bin来进行控制,也就是没有log_bin 的设置MYSQL8 依然会打开BINLOG +------------------------------...19 sync_binlog = 1 innodb_flush_log_trx_commit = 1 在mysql中默认以上两个参数均应为设置1 在这样的情况下,保证数据的安全性,其他的设置均不应被考虑...20 transaction_write_set_extraction 此参数在8.026 版本后的MYSQL被放弃,默认值 XXHASH64, 这在事务期间提取写操作使用的哈希算法,XXHASH64

    38110

    MySQL组复制(MGR)全解析 Part 4 MGR单主模式部署前准备

    master_info_repository=TABLE relay_log_info_repository=TABLE binlog_checksum=NONE log_slave_updates=ON log_bin...master_info_repository=TABLE relay_log_info_repository=TABLE binlog_checksum=NONE log_slave_updates=ON log_bin...master_info_repository=TABLE relay_log_info_repository=TABLE binlog_checksum=NONE log_slave_updates=ON log_bin...在建立完成后我们应该将其设置ON group_replication_local_address 代表用于组成员间内部的通信的地址和端口对,可以使用IP也可以使用域名,不过要保证可以解析的到,推荐的端口...也可以连接rac2做同步,可以是组内成员子集,一般来说我们这里填写所有的成员信息,这里还是需要用私有地址 group_replication_bootstrap_group 代表该成员是否引导组,我们设置off

    70320

    mysql5.7.18的安装与主从复制

    远程可访问(前提是防火墙必须关闭,chkconfig iptables off:设置自动启动关闭,service iptables sto:关闭防火墙)     先登录到mysql     mysql...;windows的ip192.168.0.4,linux的ip192.168.0.223 1、master上开启binlog日志          在mysql的home目录找到my.ini文件(...binlog-ignore-db = performation_schema binlog-ignore-db = sys binlog-do-db=mybatis #需要做复制的数据库名          测试log_bin...是否成功开启          mysql> show variables like '%log_bin%';          出现下图,log_binON则表示开启成功,OFF表示开启失败 ?...2、master的数据库中建立备份账号:backup用户名,%表示任何远程地址,如下表示密码1234的任何远程地址的backup都可以连接master主机     mysql> grant replication

    59230

    MySQL5.7应当注意的参数

    server_id 和 log_bin ,binlog_format 这几个系统变量通常成对出现,当我们想指定log_bin 选项时,必须也要指定server_id 。...log_bin 是全局变量 不可动态修改 默认为OFF。当我们需要开启binlog时,可将该参数设为binlog名字或绝对路径加名字。...character_set_server 该参数指定 MySQL server端字符集,分为全局和会话级别 可以动态修改 5.7版本默认值latin1。...建议设置该参数utf8或utf8mb4,不同实例间保持一致 特别是主从实例。 lower_case_table_names 该参数控制 MySQL 是否大小写敏感,主要影响库名及表名。...当MySQL server 写操作特多 刷新脏页落后时 , innodb_io_capacity_max 参数是后台任务定义每秒执行的IO操作数的上限,innodb_io_capacity_max通常设置

    80620
    领券