mysql集群(案例:一主一从手动同步数据)

mysql复制技术

集群目的: 负载均衡,解决高并发问题;高可用HA,服务可用性;远程灾备,数据有效性。
图示:
在这里插入图片描述

类型: M;M-S;M-S-S…;M-M;M-M-S-S
原理图示:
图一:
在这里插入图片描述
图2:
在这里插入图片描述
概念:
1、在主库上把数据更改(DDL DML DCL)记录到二进制日志(Binary Log)中。
2、备库I/O线程将主库上的日志复制到自己的中继日志(Relay Log)中。
3、备库SQL线程读取中继日志中的事件,将其重放到备用数据库之上。
集群案例:
环境:全新服务器-互相通信、全新安装mysql57逐一安装、配置域名解析,在/etc/hosts文件中配置域名解析。
注意:数据库一定要逐一安装,因为克隆的数据库的ID相同。
一主一从:
主(master1):
部署一台新mysql服务器,准备好域名解析。
准备数据(验证主从同步使用):

mysql> create database master1db;
mysql> create table master1db.master1tab(name char(50));
mysql> insert into master1db.master1tab values(111);
mysql> insert into master1db.master1tab values(222);

开启二进制日志:

[root@master1 ~]# vim /etc/my.cnf
log_bin
server-id=1
[root@master1 ~]# systemctl restart mysqld   //重启生效

创建复制用户:

mysql>grant replication slave,replication client on *.* to 'rep'@'10.18.41.%' identified by '密码';

备份master1数据库的数据:

mysqldump -p'密码' --all-databases --single-transaction --master-data=2 --flush-logs > `date +%F`-mysql-all.sql
scp -r 2020-9-17-mysql-all.sql slave1:/tmp

准备数据2(验证主从同步使用):

mysql> insert into master1db.master1tab values(333);
mysql> insert into master1db.master1tab values(444);

从slave1:
测试rep用户是否可用:

mysql -h master1 -urep -p'密码'

启动服务器序号:

[root@slave1 ~]# vim /etc/my.cnf
server-id=2
[root@localhost ~]# systemctl restart mysqld

手动同步数据:

mysql> set sql_log_bin=0;
mysql> source /tmp/2020-09-17-mysql-all.sql

设置主服务器:

mysql> change master to
master_host='master1',
master_user='rep',
master_password='密码',
master_log_file='localhost-bin.000002',
master_log_pos=154;

设置从设备:

mysql> start slave;

查看启动状态:show slave status\G;
返回主服务器(master1)更新数据,在从服务器(slave1)观察是否同步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值