基于AB复制的双主双从--读写分离服务架构

 准备好mycat服务和mycat运行的jdk环境包

 

 准备四台虚拟机实验

作者使用C-1、C-2作为两台主机,互为主从。C-3、C-4作为从机

为了避免I/O线程读取二进制文件超时,一定要关闭防火墙

systemctl  stop  firewalld

setenforce 0

AB复制原理:

理解了底层原理我们开始操作虚拟机

在主机C-1中更改mysql服务配置

vim   打开配置文件

vim  /etc/my.cnf

#添加如下内容

server-id=1
log-bin=c1_bin
log-slave-updates
auto-increment-increment=2
auto-increment-offset=1

重启服务:

systemctl   restart mysqld

在主机C-2中更改mysql服务配置

vim   打开配置文件

vim  /etc/my.cnf

#添加如下内容

server-id=2
log-bin=c1_bin
log-slave-updates
auto-increment-increment=2
auto-increment-offset=2

重启服务:

systemctl   restart mysqld

在主机C-3中更改mysql服务配置

vim   打开配置文件

vim  /etc/my.cnf

#添加如下内容

server-id=3
relay-log=mysql-relay

重启服务:

systemctl   restart mysqld

在主机C-4中更改mysql服务配置

vim   打开配置文件

vim  /etc/my.cnf

#添加如下内容

server-id=4
relay-log=mysql-relay

重启服务:

systemctl   restart mysqld

综上已经配置好了所以机器的配置文件

作者先配置了slave(从机)

思路:C-4做C-2的从机,C-3做C-1的从机

登录C-1、C-2创建一下授权账号:创建一样的就行了,个人认为没必要创两个不同的账号,主要是麻烦,哈哈

C1C2都要如此操作一下,看好两台主机的二进制文件名(file)和位置号(position),一会儿从机要用到。

grant replication slave on *.* to 'youth'@'%' identified by '1';
show master status\G

开始从机配置,登录C-4的mysql

help change  master  to ;   #获取配置项

 \e;

CHANGE MASTER TO
  MASTER_HOST='192.168.121.10',
  MASTER_USER='youth',
  MASTER_PASSWORD='1',
  MASTER_PORT=3306,
  MASTER_LOG_FILE='c1_bin.000003',
  MASTER_LOG_POS=762,
  MASTER_CONNECT_RETRY=10;

MASTER_HOST='对应主机的IP地址'

start slave;
show slave status\G

 这两个选项都是yes代表成功,同样的方法使C-3做C-1的从机,这里作者就不再赘述

C-1与C-2互为主从的操作同理

下面开始配置mycat服务

tar xf jdk-8u211-linux-x64.tar.gz -C /usr/local

tar xf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/

cd /usr/local/
mv jdk1.8.0_211/ java

1、在/etc/profile 配置新加

[root@mycat local]# vim /etc/profile  #添加如下内容,
JAVA_HOME=/usr/local/java
PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
[root@mycat local]# source /etc/profile


java -version  检查jdk是否成功安装
2、安装mycat
可以选择加入环境变量,就像jdk一样,也可以这样创建软连接
ln -s /usr/local/mycat/bin/mycat  /usr/bin/mycat

安装好先不要开启mycat,会失败,因为还没有配置

先开始配置mycat

[root@localhost ~]# cd /usr/local/mycat/conf/
[root@localhost conf]# vim server.xml 

[root@localhost conf]# vim schema.xml 

先到主机C1和C2的mysql创建授权用户和创建

C1:

create database tesetdb;

grant all on  tesetdb.*  to  'du'@'%'  identified by '1';

C2:

create database tesetdb;

grant all on  tesetdb.*  to  'xie'@'%'  identified by '1';

启动mycat:

在wrapper.conf中添加 
[root@mycat mycat]# cd conf/
[root@mycat conf]# vim wrapper.conf  #在设置JVM哪里添加如下内容
wrapper.startup.timeout=300 //超时时间300秒 
wrapper.ping.timeout=120
启动:
[root@mycat conf]# /usr/local/mycat/bin/mycat start     #需要稍微等待一会
Starting Mycat-server...
[root@mycat ~]# jps   #查看mycat是否启动
13377 WrapperSimpleApp
13431 Jps
[root@mycat ~]# netstat -lntp | grep java

 在部署mycat服务的C1主机登录mycat账号

mysql -uroot -p1 -h 192.168.121.10  -P 8066

就可以测试了

如果有读者出现报错可以私信作者

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值