看到数据库目录下有很多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
那么如何正确关闭呢
- 编辑my.cnf文件,一般路径为:/etc/my.cnf
- 在mysqld下面添加:
skip-log-bin
(已测试可以)或者disable-log-bin
(未测试,测试过的朋友告诉下结果) - 重启Mysql
[root@localhost ~]# /etc/init.d/mysqld restart;
- 再次查看状态,为关闭状态
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日志,才是完整的备份。