为什么需要搭建集群
搭建主从同步集群可以实现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基本说明配置成功了,已经开始了主从复制。
|