这是一份腾讯内部的技术文档,详细讲述了 MySQL 数据库启用二进制日志 binlog 的细节,非常有参考价值。前言:日志是把数据库的每一个变化都记载到一个专用的文件里,这种文件就叫做日志文件。Mysql默认只打开出错日志,因为过多的日志将会影响系统的处理性能。在5.0前支持文本格式和二进制格式,5.0后只支持二进制格式,因为二进制日志在性能、信息处理方面有更多的优点。
基于日志点的复制
1、在主库与从库上建立专用的复制账号
MariaDB [employees]> create user 'repl''172.%' identified by '123456';
注意在生产上的密码必须依照相关规范以达到一定的密码强度, 并且规定在从库上的特定网段上才能访问主库
2、在主库与从库上授予复制权限
MariaDB [employees]> grant replication slave on *.* to 'repl''172.%';
3、配置主库
MySQL5.6有很多新的特性,其中很多人都感兴趣的一条就是全局事务序号功能(GTIDs)。而大家都对这一特性很感兴趣的原因也很好理解,即:本来重新连接从服务器和一个新的主服务器一直是件很麻烦的事,然而在启用GTIDs功能之后就变得简单易行。可是,GTIDs的使用不单单是用单独的标识符替换旧的二进制日志文件/位置,它也采用了新的复制协议。假如你还不太明白这些,那你可以在这篇文章里学点什么。
复制协议:新的 VS 旧的
旧的协议往往简单直接即:首先从服务器上在一个特定的偏移量那里连接到一个给定的
首先在主服务器上添加可登陆的用户权限: GRANT REPLICATE SLAVE on *.* to ‘username’’host’ identified by ‘password’ 然后设置主服务器的my.ini文件。 server-id=1 #主服务器标识 log-bin #启用二进制日志 binlog-do-bin=databasename #要备份的数据库名称,多个可以重复该配置过程 binlog-ignore-db=databasename #不备份的数据库名称,多个可以重复该配置