mysql读写分离

5 篇文章 0 订阅

读写分离概念

使用数据库中间件技术(mycat),让数据的查询(select)和写操作(insert update delete)在不同的主机上数据库执行,这就读写分离。

读写分离规划

 读写分离配置

前提:先装好jdk(上传,解压,配置)

安装vim: yum -y install vim*
1.克隆mycat主机,修改IP,修改主机名称,重启,使用xshell连接
2.下载mycat,上传到虚拟机中,解压,配置环境变量
解压:
tar -xzvf software/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/

 配置环境变量:

 vim /etc/profile

 最后一行改为:

export MYCAT_HOME=/usr/mycat
export PATH=$PATH:$JAVA_HOME/bin:$MYCAT_HOME/bin

 source /etc/profile

 测试是否成功,myc+tab键,就会出来mycat

 配置server.xml

 vim /usr/mycat/conf/server.xml

 

 

 配置schema.xml文件

vim /usr/mycat/conf/schema.xml

 

 vim /usr/mycat/conf/log4j2.xml

 

读写分离测试

 

先启动4台mysql,在创建好的数据库创建表
-- 创建表
create table tb_dept(
deptno int primary key auto_increment comment '主键自增',
dname varchar(20) comment '部门名称',
loc varchar(30) comment '部门位置'
);

 

启动mycat
mycat start
jps 看到WrapperSimpleApp
或者 ps -ef|grep mycat|grep -v grep
使用navicat连接mycat
测试读写分离
-- 添加语句(多个)
insert into tb_dept(dname,loc) values('dev1','zz1');
insert into tb_dept(dname,loc) values('dev2','zz2');
insert into tb_dept(dname,loc) values('dev3','zz3');
insert into tb_dept(dname,loc) values('dev4','zz4');
-- 更新语句
update tb_dept set dname='dev11' where deptno=1;
-- 删除语句
delete from tb_dept where deptno=4;
每执行一个写操作,都查询mycat日志,看该语句在哪一台mysql执行
grep insert /usr/mycat/log
-- 查询语句(多次执行)
select * from tb_dept;
grep select /usr/mycat/log
自动故障切换的测试
1) 让mysql1宕机
service mysqld stop
2) 继续在mycat测试添加,修改,删除和查询
insert into tb_dept(dname,loc) values('dev16','zz16');
insert into tb_dept(dname,loc) values('dev17','zz17');
insert into tb_dept(dname,loc) values('dev18','zz18');

 

-- 更新语句
update tb_dept set dname='dev133' where deptno=13;
-- 删除语句
delete from tb_dept where deptno=13;
-- 查询语句(多次执行)
select * from tb_dept where deptno=2;

 

3)让M1恢复正常:
service mysqld start
nsert into tb_dept(dname,loc) values('dev16','zz16');
insert into tb_dept(dname,loc) values('dev17','zz17');
insert into tb_dept(dname,loc) values('dev18','zz18');
-- 更新语句
update tb_dept set dname='dev133' where deptno=13;
-- 删除语句
delete from tb_dept where deptno=13;
-- 查询语句(多次执行)
select * from tb_dept;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值