手把手教你搭建 MySQL 主从复制经典架构

前面两周,我写了一篇手把手教你搭建 Java 读写分离项目。今天,我们抽个时间把 MySQL 的主从复制架构搭建出来吧。要不然,大家以前的主从复制项目,可能还真不好进行验证测试。

在开始之前,我们先来简单的说一下 MySQL 主从复制的原理。

手把手教你搭建 MySQL 主从复制经典架构
不管你们是否支持我,我都在增长

MySQL复制过程分成三步:

  1. master 将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events;
  2. slave 将 master 的 binary log events 拷贝到它的中继日志(relay log);
  3. Slave 重做中继日志中的事件,将改变应用到自己的数据库中。 MySQL 复制是异步的且串行化的。

简单的来说就是 slave 节点会从 master 读取 binlog 来进行数据同步。

手把手教你搭建 MySQL 主从复制经典架构
MySQL 主从复制原理

相信很多人对上面的原理已经耳朵听出茧子了。还不说市面上还有很多专门做复制的中间件,原理都是同上。

下面我们开始动手配置 MySQL 的主从复制经典架构。以 Windows (配置文件为my.ini文件),从机为 Linux(配置文件为my.cnf)。这样各个系统都能兼顾到。

第一步,先在主库上给从库创建一个可以读取主库 binlog 的账号。

GRANT REPLICATION SLAVE ON *.* to 'xttblog'@'192.168.1.2' identified by ‘123456’;
—- 刷新配置
FLUSH PRIVILEGES;

第二步,在主库的 my.ini 文件中的 [mysqld] 后面配置上下面的内容。

log-bin=D:/xttblog/data/mysqlbinlog
#log-bin同步的日志路径及文件名,一定注意这个目录要是mysql有权限写入的
server-id=1 #master端的ID号
binlog-do-db = xttblog #要同步的数据库名
# 下面两个可以忽略的配置
binlog-ignore-db = mysql #不同步mysql库和test库
binlog-ignore-db = test

第三步,修改配置文件后,重启服务:service mysqld restart。

如果启动失败,通过cat /var/log/mysqld.log | tail -30 查看 mysql 启动失败的日志,从日志内容寻找解决方案。

第四步,查看主服务器当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复。

show master status;
手把手教你搭建 MySQL 主从复制经典架构
show master status;

到此,主库配置已经操作完了,下面我们开始操作从库的配置。

从库是一台 Linux,所以我们登录上去,配置 my.cnf 文件。

第一步,还是在 my.cnf 文件中的 [mysqld] 后面配置上下面的内容。

[mysqld]
server-id=2
master-host=192.168.1.1
master-user=xttblog
master-password=123456
master-port=3306
replicate-do-db=xttblog

配置完成后进行重启数据库。如果重启失败,报错。则直接在从库上执行下面的 SQL 语句来操作。

CHANGE MASTER TO MASTER_HOST='192.168.1.1',
  MASTER_PORT=3306,
  MASTER_USER='xttblog',
  MASTER_PASSWORD=‘123456',
  MASTER_LOG_FILE='binlog.000149',
  MASTER_LOG_POS=344; #后面两个参数的值与主库保持一致

然后重启 slave 节点,查看从节点状态。

手把手教你搭建 MySQL 主从复制经典架构
查看从节点状态

当结果中 Slave_IO_Running: Yes 和 Slave_SQL_Running: Yes 都显示为 YES,则表明搭建成功。

注意:为了保证搭建成功,不受防火墙影响,大家可以把主从两台服务器上的防火墙都给关了。

然后你就可以随心所欲的创建表,增删改查操作数据了。

手把手教你搭建 MySQL 主从复制经典架构

: » 手把手教你搭建 MySQL 主从复制经典架构

原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/tech/database/252408.html

(0)
上一篇 2022年5月4日 13:14
下一篇 2022年5月4日 13:16

相关推荐

发表回复

登录后才能评论