集群
集群的目的是为了解决高并发,保证服务的可用性,以及远程灾备,即保证数据的安全性和有效性。
做集群之前需要先确保环境做好。1.全新服务器-互相通信;2.全新安装mysql57-逐一安装,这个可以去中科大镜像网站去下载,网址是:https://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.7/;3.配置域名解析,vim /etc/hosts
192.168.133.158 master1
192.168.133.161 slave1
一主一从两台服务器的二进制日志文件必须开启。
1:配置主服务器配置文件,在master1和master2中/etc/my.cnf里面写入下面配置文件,写完后重启mysqld
log_bin #开启二进制日志文件
server-id=2 #服务器id号
gtid_mode=ON
enforce_gtid_consistency=1
2:配置从服务器配置文件,在slave1 和 slave2中/etc/my.cnf里面写入下面配置文件,写完后重启mysqld
vim /etc/my.cnf
log_bin
server-id=2
gtid_mode=ON
enforce_gtid_consistency=1
3: 设置master1为slave1的主服务器
mysql> grant replication slave, replication client on *.* to 'rep'@'192.168.133.%' identified by 'DaBai@123';
创建复制用户rep,让slave1可以复制master1中的数据,让slave1可以复制master1中的数据,这段命令在两个服务器上各执行一次。
start slave; 开启slave
show slave status\G; 查看slave的状态
4: 备份主服务器master1的数据
mysqldump -p'QianFeng@123' --all-databases --single-transaction --master-data=2 --flush-logs > `date +%F-%H`-mysql-all.sql
5:将备份数据发送给slave1
scp 2020-8-29-mysql-all.sql slave1:/tmp
6:从服务器测试rep用户是否可用
mysql -h master1 -urep -p'QianFeng@123'
7:回复手动同步数据
set sql_log_bin=0;
source /tmp/2020-8-29-mysql-all.sql
8 设置主服务器
mysql> change master to
master_host='master1',
master_user='rep',
master_password='QianFeng@123',
master_auto_position=1;
start slave;
show slave status\G;