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

本文详细介绍了如何在CentOS 7.4环境下配置MySQL基于Binlog的日志主从同步,包括设置Master的server-id、创建binlog目录、授权用户,以及在Slave端配置连接参数和启动同步过程。适合初学者和运维人员参考。


前言

在我之前的博客中,对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)修改配置文件(添加新内容)

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

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

[root@master ~]# mkdir /var/log/mysql

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

[root@master ~]# chown mysql.mysql /var/log/mysql

(4)重启mysqld

[root@master ~]# systemctl restart mysqld

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

[root@master ~]# mysql -uroot -p
mysql> GRANT REPLICATION SLAVE ON *.*  TO  'zrs'@'%'  identified by 'ZRSanqy@123';
mysql> flush privileges;

(6)查看Master状态

在这里插入图片描述

2.2 配置Slave端

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

[root@slave ~]# vim /etc/my.cnf
[mysqld]
server-id=2

(2)重启mysqld

[root@slave ~]# systemctl restart mysqld

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

[root@slave ~]# 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即可实现主从同步。

点击跳转到开头

基于binlog主从同步具体步骤如下: 1. **主服务器配置**:启用binlog日志并指定`server_id`。在主服务器的配置文件(如`my.cnf`)中添加或修改以下配置: ```ini log-bin = mysql-bin server-id = 1 ``` 2. **主服务器用户授权**:为从服务器创建一个具有复制权限的用户,并授予相应的权限: ```sql CREATE USER 'repl_user'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%'; FLUSH PRIVILEGES; ``` 3. **从服务器配置**:指定`server_id`,确保其与主服务器的`server_id`不同。在从服务器的配置文件中添加或修改: ```ini server-id = 2 ``` 4. **数据备份(可选)**:如果两台主机都是新部署的,可跳过此步骤。若需要,可将主服务器的数据备份并恢复到从服务器。 5. **指定主服务器信息**:从库通过手工执行`change master to`语句连接主库,提供连接的用户、密码、端口、IP等信息,并且指定二进制日志的起点位置(`file`名和`position`号)。 ```sql CHANGE MASTER TO MASTER_HOST='主服务器IP', MASTER_USER='repl_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=106; ``` 其中,`MASTER_LOG_FILE`和`MASTER_LOG_POS`可通过在主数据库执行`SHOW MASTER STATUS;`得到[^3][^5]。 6. **启动从服务器复制线程**:执行`START SLAVE;`语句启动从服务器的I/O线程和SQL线程。 7. **查看状态信息**:使用`SHOW SLAVE STATUS\G;`查看从服务器的复制状态,确保`Slave_IO_Running`和`Slave_SQL_Running`都为`Yes`。 ```sql SHOW SLAVE STATUS\G; ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云计算-Security

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值