集群概述:MySQL 复制技术,通过集群实现负载均衡,解决高并发,高可用HA提升服务可用性,还可以远程灾备,保证数据有效性
原理
解释:
环境:全新服务器-互相通信,全新安装mysql57-分别安装,配置域名解析。(文章——Linux运维实战——数据库及MySQL部署)
一主一从(M-S)
master1主服务器
vim /etc/my.cnf 开启二进制日志 log_bin server-id=1 服务器ID设置 systemctl restart mysqld 重启生效 grant replication slave, replication client on *.* to 'rep'@' 192.168.231.%' identified by 'XieDongwy@163'; 创建复制用户
master2
vim /etc/my.cnf 服务器ID设置 server-id=2 systemctl restart mysqld mysql -uroot -p'XieDongwy@163'
master2 配置主服务器 show master status 首先master1 查看日志位置
mysql> change master to master_host='master 1', master_user='rep', master_password='XieDongwy@163', master_log_file=' localhost-bin.000002', 对应show master status master_log_pos=154; 对应show master status mysql> start slave; 启动从设备 show slave status\G; 查看启动状态
无报错主服务器更新数据查看是否同步
一主一从(M-S)自动同步(该属性自动记录position位置。不需要手动指定了。)
先重置master2数据库
master1
vim /etc/my.cnf 启动二进制日志,服务器ID,GTID log_bin server-id=1 gtid_mode=ON enforce_gtid_consistency=1 systemctl restart mysqld
grant replication slave,replication client on *.* to 'rep'@'192.168.122.%' identified by 'XieDongwy@163'; 授权复制用户 flush privileges;
master2
mysql -h master1 -urep -p'XieDongwy@163' 测试rep用户是否可用 vim /etc/my.cnf 启动二进制日志,服务器ID,GTID log_bin server-id=2 gtid_mode=ON enforce_gtid_consistency=1 systemctl restart mysqld
mysql> change master to 设置主服务器 master_host='master1', master_user='rep', master_password='XieDongwy@163', master_auto_position=1;
start slave; show slave status\G;
双主双从(MM-SS)即双向配置一下主服务器
配置master2 上进行授权
mysql> grant replication slave, replication client on *.* to 'rep'@'192.168.2.%' identified by 'XieDongwy@163'; flush privileges;
master1
mysql> change master to master_host='master2', master_user='rep', master_password='XieDongwy@163', master_auto_position=1;
start slave;show slave status\G;
从服务器参考单主单从,配置一遍即可