0. 什么是主从复制?
把主服务器(master)的bin日志复制到从服务器(slave)上再执行一遍,从而达到两台服务器上数据同步的效果。
什么是集群?
集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。
1.主从复制原理
主数据库开启二进制日志,数据变更产生二进制日志
从服务器的I/O线程读取主数据库的Binary log并写入Relay log
SQL线程读取Replay log并Replay达到主从数据库一致
2.主从复制实验
项目名称:构建一个简单的MySQL主从复制集群
项目环境:2c/4G的服务器(虚拟机),CentOS Linux release 7.9.2009 (Core)、MySQL5.7.34
项目描述:为了提升MySQL的并发能力构建一个简单的MySQL集群,实现读写分离,大大提高MySQL集群的业务处理能力,同时深入学习MySQL的整体部署和对集群架构的理解。
项目步骤:
1.准备好两台安装好的机器,使用脚本一键部署好二进制的MySQL
2.在master服务器上开启二进制日志和配置server_id,
在slave服务器上配置server_id
3.在master服务器上创建复制二进制的用户并授权
create user 'sc_slave'@'192.168.2.100' identified by '123456';
grant replication slave on *.* to 'sc_slave'@'192.168.2.100';
4.在master上做一个全备,导出数据,导入到slave上,
保持master和slave上数据的一致
[root@sc-mysql backup]# mysqldump -uroot -p'Sanchuang123#' --all-databases > /backup/all_db.sql
[root@sc-mysql backup]# scp /backup/all_db.sql root@192.168.2.100:/root
[root@slave_mysql ~]# mysql -uroot -p'Sanchuang123#' </root/all_db.sql
5.在slave上配置去master拉取二进制日志的用户信息和日志文件的名称和位置号
CHANGE MASTER TO MASTER_HOST='192.168.2.128',
MASTER_USER='sc_slave',
MASTER_PASSWORD='123456',
MASTER_PORT=3306,
MASTER_LOG_FILE='sc-mysql-bin.000001',
MASTER_LOG_POS=154;
root@(none) 16:28 mysql>show slave status\G; 查询slave
6.在master和slave上都关闭防火墙和selinux
7.在slave服务器上启动slave服务,查看I/O线程和SQL线程是否正常启动
8.验证主从复制的效果