网站用户维护,怎么做网页界面,民治网站建设,高端定制手机网站一、双主双从架构介绍 在MySQL多主多从的架构配置中和双主双从是一样的#xff0c;学会了双主双从的架构部署#xff0c;多主多从的配置也同样就回了。下面以双主双从作为示例演示。其中一个主机maste1用于处理所有写请求#xff0c;它的从机slave1和另外一台主机master2还有…一、双主双从架构介绍 在MySQL多主多从的架构配置中和双主双从是一样的学会了双主双从的架构部署多主多从的配置也同样就回了。下面以双主双从作为示例演示。其中一个主机maste1用于处理所有写请求它的从机slave1和另外一台主机master2还有它的从机salve2负责所有读数据请求当master1主机宕机后master2主机会立刻切换到负责写请求master1和master2互为备机架构如下 二、双主双从主机配置 四台MySQL主机分别如下 192.168.3.91角色 master1, 启动服务MycatMySQL, 关闭防火墙 192.168.3.92角色 slave1 启动服务MySQL关闭防火墙 192.168.3.93角色 master2, 启动服务MySQL关闭防火墙 192.168.3.94角色 slave2, 启动服务MySQL关闭防火墙 说明1其中192,168.3.91即当MySQL服务器又充当Mycat的服务器 三、master1节点配置 3.1 修改mysql配置文件 192.168.3.91这个台服务器当做双主中的一个修改其配置文件如下vim /etc/my.cnf 说明1: server-id1 是mysql集群服务中的唯一标识 说明2binlog-do-db是指定要主从复制的数据库不指定默认是全部数据库都做主从复制 说明3在主服务器上要配置log-slave-updates因为当存在多个主服务器的时候有可能会存在备用主机备用主机也是需要通过binlog文件向自己的从机同步数据的所以要开始log-slave-updates 3.2 重启mysql 3.3 创建用于主从复制的账号 要进入mysql交互界面注意不是进入Mycat # 创建一个mysql用户为houlei,并设置密码为Se7eN521,该用户可以在任意主机连接该MySQL服务
mysql create user houlei% identified with mysql_native_password by Se7eN521;
Query OK, 0 rows affected (0.03 sec)
# 为houlei% 用户分配主从复制权限
mysql grant replication slave on *.* to houlei%;
Query OK, 0 rows affected (0.01 sec) 3.4 查看二进制日志坐标 四、master2节点配置 4.1 修改mysql配置文件 192.168.3.93这个台服务器当做双主中的另外一个修改其配置文件如下vim /etc/my.cnf 说明1这里的server-id3 4.2 重启mysql 4.3 创建用于主从复制的账号 要进入mysql交互界面注意不是进入Mycat # 创建一个mysql用户为houlei,并设置密码为Se7eN521,该用户可以在任意主机连接该MySQL服务
mysql create user houlei% identified with mysql_native_password by Se7eN521;
Query OK, 0 rows affected (0.03 sec)
# 为houlei% 用户分配主从复制权限
mysql grant replication slave on *.* to houlei%;
Query OK, 0 rows affected (0.01 sec) 4.4 查看二进制日志坐标 五、slave1节点配置 5.1 修改配置文件 slave1节点是192.168.3.92, 修改其配置文件如下 vim /etc/my.cnf 5.2 重启mysql 5.3 slave1关联master1 change master to master_host192.168.3.91,master_userhoulei,master_passwordSe7eN521,master_log_filebinlog.000010,master_log_pos156; 说明1master_host是该从库关联的主库slave1关联的事192.168.3.91这台master1 说明2master_user是关联账号houlei这个账号是在master1中刚创建的账号就是用来做主从复制使用的 说明3master_password是关联账号的密码 说明4master_log_file是开始主从复制的binlog文件名 说明5master_log_poss是binlog日志文件位置这个参数是不用加引号或单引号的。 5.4 启动slave1的主从复制 说明6start slave 开始主从复制 六、slave2节点配置
6.1 修改配置文件 slave2节点是192.168.3.94修改其配置文件如下 vim /etc/my.cnf 6.2 重启mysql 6.3 slave2关联master2 change master to master_host192.168.3.93,master_userhoulei,master_passwordSe7eN521,master_log_filebinlog.000018,master_log_pos156; 说明1master_host是该从库关联的主库slave2关联的事192.168.3.93这台master2 说明2master_user是关联账号houlei这个账号是在master1中刚创建的账号就是用来做主从复制使用的 说明3master_password是关联账号的密码 说明4master_log_file是开始主从复制的binlog文件名 说明5master_log_poss是binlog日志文件位置这个参数是不用加引号或单引号的。 说明6该语句是在slave2的mysql交互界面执行的
6.4 启动slave2的主从复制 七、两台主库相互复制 以上6章节我们等于部署了master1-slave1和master2-slave2两套一主一从但是目前位置这两个一主一从还没有任何关系所以接下来我们就要配置两台主机上的关联了。即master1复制master2的同时master2也复制master2. 在master1上执行 change master to master_host192.168.3.93,master_userhoulei,master_passwordSe7eN521,master_log_filebinlog.000018,master_log_pos156; start slave; show slave status\G; 说明1以上代码其实就是将master1配置为master2的从库 然后在master2上执行
change master to master_host192.168.3.91,master_userhoulei,master_passwordSe7eN521,master_log_filebinlog.000010,master_log_pos156; start slave; show slave status\G; 说明2以上代码其实就是将master2配置为master1的从库 八、双主双从测试 分别在两台主库master1,master2上执行DDL和DML语句查看涉及到的数据库服务器的数据同步情况 在master1上操作 8.1、创建数据库test_db1 mysql create database test_db1;
Query OK, 1 row affected (0.01 sec) 说明1我们在192.168.3.91的master1主库上创建了数据库test_db1,然后再slave1和master2,slave2上立刻就复制创建了test_db1出来 2、我们在master2上的test_db1的数据库中创建一个tb_test表 create table tb_test(id int auto_increment primary key, name varchar(20)); 说明2在master2上进行创建表同样会自动复制到master1和其他从表中 说明3至此双主双从算是配置好了 九、双主双从的读写分离 Mycat控制后台数据库的读写分离和负载均衡有schema.xml文件中的dataHost标签的balance属性控制通过writeType及switchType来完成失败自动切换的。 9.1 配置schema.xml 说明1在配置schema逻辑库的时候就要指定数据节点dataNode的值因为如果逻辑库下的所有表都要实现读写分离则不需要配置table标签 说明2dn1数据节点下对应的mysql的database为test_db1 说明3在dataHost标签的配置中要注意balance值为1writeType值为0switchType的值为1,解释如下 balance1: 关于balance所有值的解释在上一遍文章中有解释需要的请通过合集找到上一篇文章查看这里直接是balance1的情况代表全部的readHost和备用主机的writeHost参与select语句的负载均衡简单的说当双主双从模式(master1-slave1,master2-slave2,并且master1和master2互为主备)正常情况下master2slave1slave2都要参与select语句的负载均衡 writeType0代表写操作都转发到第一台writerHost,writeHost1挂了会切换到writeHost2上。1代表所有写操作都随机的发送到配置的witerHost上 switchType-1代表不自动切换1代表自动切换 说明4双主双从即配置两个writeHost和readHost组合如果是多主多从即配置多个writeHost和readHost组合即可。
9.2 配置server.xml 说明5给root用户增加test_db1数据库的操作权限 9.3 双主双从读写分离测试 首先重启Mycat 登录Mycat 查看逻辑库和逻辑表 插入测试数据 insert into tb_test(name) values (张三);
insert into tb_test(name) values (李四);
insert into tb_test(name) values (王五); 说明6在Mycat中插入数据master1,slave1,master2,slave2中都添加了数据. 查询数据测试同样的直接查询我们是没办法确定查询的数据到底是来自哪里所以我们还是修改从库中的数据将slave1中的“张三”改了“张三s1”将slave2中的“张三”改为“张三s2” 说明7查询结果是张三的说明数据来源master2 说明8查询结果是张三s1的说明数据来源是slave1 说明9查询结果是张三s2的说明数据来源是slave2 说明10以上测试说明了双主双从实现了读写分离 十、双主双从的高可用测试 测试一台主机宕机下双主双从是否可以继续运行。 10.1、现将master1(192.168.3.91)的服务关闭 10.2 进入Mycat进行增删改查测试 说明1仍然可以查询说明可以进行读数据 说明2master1挂了的情况下我们的双主双从架构的MySQL依然可读可写所以高可用也没问题 总结在双主双从的基础上多主多从同样的实现思路。 文章转载自Se7eN_HOU 原文链接https://www.cnblogs.com/Se7eN-HOU/p/17926983.html 体验地址引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构