mysql主从复制搭建及mysqlbinlog选择复制节点

由于线上的业务不断的增加,mysql的主从已经搭建过很多遍了,但是每次在做的时候,其实都会有新的体会。这次在搭建的时候,就意外发现了个小问题,
于是就带着玩了一下。其实这个方法在主从延迟和数据缺失中,可以经常使用。

好了废话不多说,考虑到雅俗共赏,也附上数据库编译安装过程;

一.编译安装mariadb ,这里和mysql5.5一样的。
准备编译环境:

#make之后

二.MySQL的基本应用
配置本地mysql无密钥登陆:
根据MySQL的配置文件查找流程;我们在创建文件~/.my.cnf

重新登陆就不需要密码了
三.主从复制
【master】
1,主服务器的server-id,保持唯一。
2,开启二进制日志。
3,授权一个可以复制的用户,最小权限使用,指向从服务器最好。
grant replication client,replication slave on *.* to 'cpuser'@'192.168.1.%' identified by "password";
【slave】
1,开启二进制日志(选择开启),开启中继日志
relay-log = relay-bin
2,保持唯一的server-id
3,连接主服务器,指定主服务器Ip,授权的用户,密码,上一次的二进制文件的位置。

这里面我发现我是授权的全部库的复制:
grant replication client,replication slave on *.* to 'cpuser'@'192.168.1.%' identified by "password";
但是这个用户却没有复制过来,你难道是没有刷新授权表。于是
flush privileges;
结果还是不行,好吧查看二进制日志于是发现:我们show master status的节点位置其实是晚于grants 的。因此这个节点被跳过了。

到这里这个这个问题就解决了。那么这个问题其实是可以举一反三的。比如服务器异常,主4同步中断后的恢复等,都可以使用该方法。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: