如何配置Binlog
binlog日志有两个最重要的使用场景
1)MySQL主从复制:MySQL Replication在Master端开启binlog,Master把它的二进制日志传递给slaves来达到
master-slave数据一致的目的。
2)自然就是数据恢复了,通过使用mysqlbinlog工具来使恢复数据。
binlog日志包括两类文件
1)二进制日志索引文件(文件名后缀为.index)用于记录所有的二进制文件
2)二进制日志文件(文件名后缀为.00000*)记录数据库所有的DDL和DML(除了数据查询语句select)语句事件。
二、开启binlog日志功能
1)编辑打开mysql配置文件/etc/mys.cnf
[root@vm-002 ~]# vim /etc/my.cnf
在[mysqld] 区块添加
log-bin=mysql-bin 确认是打开状态(mysql-bin 是日志的基本名或前缀名)
**注意:**每次服务器(数据库)重启,服务器会调用flush logs;,新创建一个binlog日志!
2)重启mysqld服务使配置生效
[root@vm-002 ~]# /etc/init.d/mysqld stop
[root@vm-002 ~]# /etc/init.d/mysqld restart
Stopping mysqld: [ OK ]
Starting mysqld: [ OK ]
3)查看binlog日志是否开启
mysql> show variables like ‘log_%’;
±--------------------------------±--------------------+
| Variable_name | Value |
±--------------------------------±--------------------+
| log_bin | ON |
| log_bin_trust_function_creators | OFF |
| log_bin_trust_routine_creators | OFF |
| log_error | /var/log/mysqld.log |
| log_output | FILE |
| log_queries_not_using_indexes | OFF |
| log_slave_updates | OFF |
| log_slow_queries | OFF |
| log_warnings | 1 |
±--------------------------------±--------------------+
9 rows in set (0.00 sec)
三、常用的binlog日志操作命令
1)查看所有binlog日志列表
mysql> show master logs;
±-----------------±----------+
| Log_name | File_size |
±-----------------±----------+
| mysql-bin.000001 | 149 |
| mysql-bin.000002 | 4102 |
±-----------------±----------+
2 rows in set (0.00 sec)
2)查看master状态,即最后(最新)一个binlog日志的编号名称,及其最后一个操作事件pos结束点(Position)值
mysql> show master status;
±-----------------±---------±-------------±-----------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
±-----------------±---------±-------------±-----------------+
| mysql-bin.000002 | 4102 | | |
±-----------------±---------±-------------±-----------------+
1 row in set (0.00 sec)
3)flush刷新log日志,自此刻开始产生一个新编号的binlog日志文件
mysql> flush logs;
Query OK, 0 rows affected (0.13 sec)
mysql> show master logs;
±-----------------±----------+
| Log_name | File_size |
±-----------------±----------+
| mysql-bin.000001 | 149 |
| mysql-bin.000002 | 4145 |
| mysql-bin.000003 | 106 |
±-----------------±----------+
3 rows in set (0.00 sec)
注意:每当mysqld服务重启时,会自动执行此命令,刷新binlog日志;在mysqldump备份数据时加 -F 选项也会刷新binlog日志;
4)重置(清空)所有binlog日志
mysql> reset master;
Query OK, 0 rows affected (0.12 sec)
mysql> show master logs;
±-----------------±----------+
| Log_name | File_size |
±-----------------±----------+
| mysql-bin.000001 | 106 |
±-----------------±----------+
1 row in set (0.00 sec)
四、利用binlog日志恢复mysql数据
以下对ops库的member表进行操作
mysql> use ops;
mysql> CREATE TABLE IF NOT EXISTS member
(
-> id
int(10) unsigned NOT NULL AUTO_INCREMENT,
-> name
varchar(16) NOT NULL,
-> sex
enum(‘m’,‘w’) NOT NULL DEFAULT ‘m’,
-> age
tinyint(3) unsigned NOT NULL,
-> PRIMARY KEY (id
)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.10 sec)
mysql> show tables;
±--------------+
| Tables_in_ops |
±--------------+
| member |
±--------------+
1 row in set (0.00 sec)
mysql> desc member;
±--------±--------------------±-----±----±--------±---------------+
| Field | Type | Null | Key | Default | Extra |
±--------±--------------------±-----±----±--------±---------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(16) | NO | | NULL | |
| sex | enum(‘m’,‘w’) | NO | | m | |
| age | tinyint(3) unsigned | NO | | NULL | |
| classid | char(6) | YES | | NULL | |
±--------±--------------------±-----±----±--------±---------------+
5 rows in set (0.00 sec)
事先插入两条数据
mysql> insert into member(name
,sex
,age
,classid
) values(‘wangshibo’,‘m’,27,‘cls1’),(‘guohuihui’,‘w’,27,‘cls2’);
Query OK, 2 rows affected (0.08 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from member;
±—±----------±----±----±--------+
| id | name | sex | age | classid |
±—±----------±----±----±--------+
| 1 | wangshibo | m | 27 | cls1 |
| 2 | guohuihui | w | 27 | cls2 |
±—±----------±----±----±--------+
2 rows in set (0.00 sec)
如何配置Binlog相关推荐
- 【mysql】【binlog】mysql配置binlog
Mysql如何配置BinLog? 注意: 建议配置进行cdc同步的数据库为从库而非日常进行增删改查的主库:若只能使用主库进行cdc同步的话,则建议降低同步速率,减小对DML操作的影响. Linux环境 ...
- mysql 烂泥_烂泥:学习mysql的binlog配置
本文首发于烂泥行天下. 1.基础知识 日志是把数据库的每一个变化都记载到一个专用的文件里,这种文件就叫做日志文件.mysql默认只开启错误日志,因为过多的日志将会影响系统的处理性能. 在mysql5. ...
- MySQL binlog日志三种模式选择及配置
在认识binlog日志三种模式前,先了解一下解析binlog日志的命令工mysqlbinlog.mysqlbinlog工具的作用是解析mysql的二进制binlog日志内容,把二进制日志解析成可以在M ...
- mysql 烂泥,烂泥:学习mysql的binlog配置
本文首发于烂泥行天下. 1.基础知识 日志是把数据库的每一个变化都记载到一个专用的文件里,这种文件就叫做日志文件.mysql默认只开启错误日志,因为过多的日志将会影响系统的处理性能. 在mysql5. ...
- mysql 5.6 主从同步配置_Mysql 5.6主从同步配置
特别提示:本方法适用于mysql5.6版本,5.6以前的版本配置方法不同,我没有做测试 由于一主多从和一主一从的配置方法一样,所以本文仅测试一主一从,可自主扩展到多从 环境: server1 mast ...
- MySQL——binlog,redo log
一.什么是binlog.redo log binlog属于逻辑日志,是逻辑操作.innodb redo属于物理日志,是物理变更.逻辑日志有个缺点是难以并行,而物理日志可以比较好的并行操作. binlo ...
- MySQL主从数据库配置和常见问题
转载自 MySQL主从数据库配置和常见问题 本篇主要介绍MySQL的主从数据配置方法. 公司运维能力不是太好,数据库最近出了一次问题,导致丢失了一天的数据,并且某个服务宕机一晚上.为了避免再次出现 ...
- mysql-bin_MySQL - binlog日志简介及设置
基本概念 binlog是Mysql sever层维护的一种二进制日志,与innodb引擎中的redo/undo log是完全不同的日志:其主要是用来记录对mysql数据更新或潜在发生更新的SQL语句, ...
- mysql 实例启动利用binlog恢复_mysql利用binlog进行数据恢复
mysql利用binlog进行数据恢复 最近线上误操作了一个数据,由于是直接修改的数据库,所有唯一的恢复方式就在mysql的binlog.binlog使用的是ROW模式,即受影响的每条记录都会生成一个 ...
最新文章
- Android接口初了解
- 【Linux 内核】Linux 内核源码几个重要的入口源文件及函数介绍 ( 系统初始化 | 内存管理 | 虚拟文件系统 | 网络管理 )
- Screen 操作快捷键
- MySQL+Amoeba实现数据库主从复制和读写分离
- 带你深入了解 GitLab CI/CD 原理及流程
- 基于CSS实现的尖角提示符
- windows 10安装python2.7、python3.6并配置环境变量
- vue 回到顶部简单动画效果
- jquery 常见特效_常见jQuery错误的解决方案
- 四象限法推导lm曲线_数据分析四象限法详解
- 饮茶而思其源,中国茶叶之起源
- 基于单片机的心率监测系统设计(#0495)
- 音乐外链生成 html,音乐外链生成工具V2.1 支持14个音乐网站外链提取转换
- Word处理控件Aspose.Words功能演示:使用 Java 将 Word 文档转换为 Markdown
- window cmd删除文件、强制删除文件
- 思考力,决定你的产品力
- 金融day03 —— 银行支付结算、银行资产业务
- MySQL中建表时 pk、nn、qu、b、un、zf、ai、g代表的意思
- matlab用eval函数,matlab—eval函数
- 每日时间管理【战隼】
热门文章
- 日常bug记录——mybatis传值为null
- C语言的精华——指针 指针初识
- myeclipse8.5 TPTP插件的使用问题
- 包装类,包装类的自动装箱和自动拆箱
- aria2c rpc php,Debian 如何搭建使用 aria2c 作为下载工具
- typescript学习记录-练习项目-贪食蛇
- No tracked branch configured for branch dev-rongtong or the branch doesn‘t exist.
- Uniapp云开发(Uniapp入门)
- 软件授权与加密技术简单原理
- 【设计欣赏】新颖包装设计欣赏