欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL数据库基于Binlog日志的主从同步

程序员文章站 2024-03-20 21:40:46
...


前言

在我之前的博客中,对MySQL数据库的AB复制原理、主从同步已做过相应的介绍,只不过那个主从同步是基于GTID的主从同步,本次来简单介绍一下基于Binlog日志的主从同步。

一、实验环境

系统:CentOS 7.4
关闭firewalld
关闭selinux
Master和Slave两台机器分别互做本地解析

主机 功能
192.168.139.158 主库(MySQL-Master)
192.168.139.159 备库(MySQL-Slave)

二、主从同步配置

这里MySQL数据库安装省略了,做实验前应事先把MySQL数据库安装好,可参考我前面的博客《Mysql数据库编译安装及yum安装》进行安装。

2.1 配置Master端

在主服务器上,必须启用二进制日志记录并配置唯一的服务器ID,配置完成后需要重启服务器。

(1)修改配置文件(添加新内容)

[aaa@qq.com ~]# vim /etc/my.cnf   # 在配置文件后面添加如下内容
[mysqld]
log-bin=/var/log/mysql/mysql-bin   # 指定存放Binlog日志的目录
server-id=1

(2)创建存放Binlog日志的目录

[aaa@qq.com ~]# mkdir /var/log/mysql

(3)给存放Binlog日志的目录修改属主/组

[aaa@qq.com ~]# chown mysql.mysql /var/log/mysql

(4)重启mysqld

[aaa@qq.com ~]# systemctl restart mysqld

(5)登录mysql并创建主从同步用户

[aaa@qq.com ~]# mysql -uroot -p
mysql> GRANT REPLICATION SLAVE ON *.*  TO  'zrs'@'%'  identified by 'aaa@qq.com';
mysql> flush privileges;

(6)查看Master状态

MySQL数据库基于Binlog日志的主从同步

2.2 配置Slave端

(1)修改配置文件(添加新内容)

[aaa@qq.com ~]# vim /etc/my.cnf
[mysqld]
server-id=2

(2)重启mysqld

[aaa@qq.com ~]# systemctl restart mysqld

(3)登录mysql并配置连接Master

[aaa@qq.com ~]# mysql -uroot -p
mysql> \e
    -> ;
Query OK, 0 rows affected, 2 warnings (0.06 sec)

MySQL数据库基于Binlog日志的主从同步

(4)开始同步

mysql> start slave;
mysql> show slave status\G

MySQL数据库基于Binlog日志的主从同步

总结

以上就是MySQL基于Binlog日志的主从同步,实现原理及方法很简单,只要在操作过程中小心点,一般都不会出现什么问题,同步的关键在于Master的Binlog日志文件和位置点,因此在Master的配置文件中指定好Bonlog日志的存放路径并修改Binlog日志所在目录的属主和属组,然后在Slave端修改配置相应的连接信息(包括授权用户、Master主机名、授权密码、Master的Binlog日志名、位置点等),最后再start slave即可实现主从同步。

点击跳转到开头