MySQL binLog问题

文章讲述了在MySQL中遇到OFF.*文件的困惑,发现log_bin被设置为路径而非开关,导致产生的OFF文件。作者解释了如何通过编辑my.cnf文件正确关闭log_bin功能,并阐述了关闭的理由,如减少I/O压力和非必要场景下的使用。
摘要由CSDN通过智能技术生成

看到数据库目录下有很多OFF.*文件的时候很诧异,这玩意是啥,binlog不应该都是*bin-log.*的文件吗?*

[root@test ~]# cd /data/mysql_data
[root@test mysql_data]# ls
ansible            hap_attach_yl     hap_func_yl  hap_msg_yl       hap_trn_yl      ibtmp1           OFF.000003  OFF.000011
apolloconfigdbdev  hap_authz_yl      hap_hse_yl   hap_passport_yl  hap_uc_yl       ly-FAT.pid       OFF.000004  OFF.index
apolloconfigdbfat  hap_cache_ttw_yl  hap_hsm_yl   hap_phd_yl       hap_wf_yl       master.log       OFF.000005  performance_schema
apolloconfigdbpro  hap_cache_yl      hap_im_yl    hap_pom_yl       hap_wtask_yl    mysql            OFF.000006  relaylog
apolloconfigdbuat  hap_cbs_yl        hap_insp_yl  hap_pub_yl       ib_buffer_pool  mysql.sock       OFF.000007  sys
apolloportaldb     hap_csc_yl        hap_job_yl   hap_risk_yl      ibdata1         mysql.sock.lock  OFF.000008  test.pid
auto.cnf           hap_dict_yl       hap_kpi_yl   hap_sms_yl       ib_logfile0     OFF.000001       OFF.000009  xtrabackup_binlog_pos_innodb
binlog             hap_eam_yl        hap_mgr_yl   hap_sy_yl        ib_logfile1     OFF.000002       OFF.000010  xtrabackup_info

但也觉得应该是binlog,于是看了一下cat了一下/ect/my.cnf文件。mysql binlog是关了的。

#binlog相关
#log_bin=binlog/mysql-bin
log_bin=OFF
sync_binlog= 1
binlog_format=row
expire_logs_days=20
max_binlog_size=1G

然后又登录了一下mysql的navicat客户端,查询了一下。发现binlog是开启状态,而且目录被改到了/data/mysql_data下,名字也对上了OFF*,破案了。
在这里插入图片描述

原来调整my.cnf的log_bin配置项是无法关掉的,因为log_bin配置的是路径而非开关状态

server_id=1                  
log_bin=mysql-bin
#log-bin-index=master-bin.index
expire_logs_days = 7
#binlog_format = row    #默认为mix,新版中设为这两项可提高安全性
#binlog_row_image = minimal
max_binlog_size = 100m   #默认是1G
binlog_cache_size = 4m
#binlog-do-db = DBNAME #指定mysql的binlog日志只记录哪个库
max_binlog_cache_size = 512m  #生产4g
#skip-slave-start

那么如何正确关闭呢

  1. 编辑my.cnf文件,一般路径为:/etc/my.cnf
  2. 在mysqld下面添加:skip-log-bin(已测试可以)或者disable-log-bin(未测试,测试过的朋友告诉下结果)
  3. 重启Mysql [root@localhost ~]# /etc/init.d/mysqld restart;
  4. 再次查看状态,为关闭状态 show variables like 'log_bin';

这样便不会生成一堆OFF.000001、OFF.000002 OFF.index的文件了

为什么关闭呢

MySQL8.0 关闭log-bin功能

先说下为什么关闭:开启binlog记录功能,会增加从库磁盘I/O等的压力,非必要开启,请关闭。

必要开启情况: 1)级联同步A->B->C中间的B时

2)在从库做数据库备份,数据库备份必须要有全备和binlog日志,才是完整的备份。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值