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