MySQL主从同步集群搭建

mysql主从同步原理、集群搭建教程

为什么需要搭建集群

搭建主从同步集群可以实现MySQL数据库的高可用、可扩展和读写分离,提升系统的性能和稳定性。这在对数据库的可靠性、 并发读写能力和扩展性有较高要求的业务场景中尤为重要。

主从同步原理

主数据库(Master): 主数据库是数据变更的源头。它接收来自应用程序的写操作(INSERT、UPDATE、DELETE等), 并记录这些操作在二进制日志(Binary Log)中, 这个过程叫做二进制日志事件 binary log events。

从数据库(Slave): 从数据库是主数据库的复制目标。它连接到主数据库,并通过读取主数据库的二进制日志来获取数据变更信息, 然后在从数据库上重现这些操作,从而保持与主数据库的数据一致性。改过程具体分为以下2个步骤:

  • slave 将binary log events 拷贝到它的中继日志(relay_log)。
  • slave重做中继日志中的事件,将改变应用到自己的数据库中,mysql复制时异步的且串行化的

集群搭建流程

安装MySQL:在主库和从库上都安装MySQL数据库服务器。确保主库和从库的MySQL版本相同或兼容

master 配置

1、打开主库的二进制日志功能。修改主机的配置文件(通常是my.cnf或my.ini),启用二进制日志,设置服务器ID。

1
2
3
4
......
log-bin = master-bin # 打开bin log日志文件,必须
server-id = 1 # 指定master服务id,必须 只要保证集群中唯一即可
......

2、启动主库MySQL服务,登陆root用户后创建主从复制用户slave并授权。

1
2
3
4
5
6
# 登录
mysql -u root -p
# 创建用户 slave,注意这里的ip是从库服务器的ip
CREATE USER 'slave'@'ip' IDENTIFIED WITH mysql_native_password BY '123456';
# 给主从复制账号授权
grant replication slave on *.* to 'slave'@'ip';

3、重启主库的mysql服务,登录root查看配置是否生效

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# 重启服务
service mysqld restart

# 登录root
mysql -u root -p

# 查看配置
show master status;
# 出现如下内容说明配置成功
+---------------+----------+--------------+------------------+-------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000001 |     2463 |              |                  |                   |
+---------------+----------+--------------+------------------+-------------------+
1 row in set (0.01 sec)

slave配置

1、修改从库的配置文件,设置服务器ID,启用从库功能.

1
2
3
......
server-id = 2 #只要保证集群中唯一即可
......

2、重启服务并配置主从同步

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# 重启服务
service mysqld restart

# 登录
mysql -u root -p

# 关闭从库
stop slave;

# 设置同步,注意这里是主库ip,master_log_file和master_log_pos是配置master第3步中 show master status 命令查出的值
change master to master_host='ip',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=2463;

# 开启从库
start slave; 

# 检查服务器状态
show slave status \G;
# 看到Replica has read all relay log; waiting for more updates基本说明配置成功了,已经开始了主从复制。
转载需要保留原始链接,未经明确许可,禁止商业使用。 CC BY-NC-SA 4.0
本博客已稳定运行 小时 分钟
共发表 31 篇文章 · 总计 82.93 k 字
本站总访问量
Built with Hugo
主题 StackJimmy 设计