MyCat实现读写分离、分库分表——环境搭建

一、环境搭建

环境准备:

  1. 采用Vmware做虚拟机,3台虚拟机
  2. Linux centOS 7
  3. 采用yum方式,其中两台安装MySql
  4. 检查两台MySQL是否正确
  5. 下载MyCat软件包
  6. 第三台机器安装MyCat,并且修改配置文件
    架构图如下
    在这里插入图片描述
    (一)MySQL安装
    概述 : Linux中,通过yum方式安装MySql
    MySQL官方安装教程:https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html
    1、 Adding the MySQL Yum Repository
    a.下载MySQL的Yum仓库
    https://dev.mysql.com/downloads/repo/yum/
    在这里插入图片描述
    b.将yun仓库上传到两台MySQL节点
    在这里插入图片描述
    c…安装yum仓库
yum install mysql80-community-release-el7-{version-number}.noarch.rpm
#version-number与上面下载的yum仓库版本对应

2、Installing MySQL

yum install mysql-community-server

3、Starting the MySQL Server
a、启动

systemctl start mysqld

b、检查服务启动状态

ystemctl status mysqld

4.登录
a、查询临时密码

grep 'temporary password' /var/log/mysqld.log

b、使用临时密码登录

 mysql -uroot -p

c、修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

d、刷新

flush privileges;

e.退出后尝试重新登录

mysql -uroot -p

f、使用老的加密方式创建用户

create USER 'test'@'%' IDENTIFIED with mysql_native_password  BY 'password';
#授权
 grant all on *.* to 'test'@'%';
 #刷新权限
 FLUSH PRIVILEGES;

5.使用navicat连接测试

(二)MyCat 安装
1.安装
a、下载:http://www.mycat.org.cn/
b、将下载好的文件上传到服务器上
c、解压文件

tar -zxvf Mycat-server-1.6.7.4-test-20191022170541-linux.tar.gz

d、解压完毕,将解压后的文件转移到/usr/local目录下

mv mycat/ /usr/local/

2.配置Mycat
a、进入mycat目录下的conf目录
在这里插入图片描述
b、修改server.xml文件

vim server.xml

在这里插入图片描述
说明:
server.xml里面配置了system、firewall和user,我们现在需要修改一下user里面的schemas,这是mycat的逻辑库名,需跟schema.xml里面的schema标签的name对应,如果需要配置多个schema,可以用,隔开。我们将schemas设置成school,保存并退出。

c、 配置schema.xml

vim schema.xml

在这里插入图片描述

c1 首先配置dataHost,我们这里有两台Mysql服务器,所以需配置两个dataHost。
在这里插入图片描述
c2 将两台Mysql服务器的url,user,password分别配置到dataHost下的writeHost,先将writeHost下的readHost注释掉。为了便于记忆这里将两个dataHost的name分别改为dh151,dh152。接下来配置dataNode。
在这里插入图片描述
c3 我们配置两个dataNode,dataHost属性分别对应前面配置的两个dataHost的name,database属性对应两台Mysql服务器中的school_151,school_152,并将name分别设置为dn151,dn152。
在这里插入图片描述
c4 最后配置schema。
在这里插入图片描述
schema的name属性对应server.xml中配置的schema,shcema下面的table标签的name属性与Mysql中的表名一致,dataNode属性对应上面配置的两个dataNode标签的name,rule属性表示的是分片规则,这里使用的是auto-sharding-long。这里只保留一个table标签,将其他的table标签注释掉。保存并退出
在这里插入图片描述
d、修改autopartition-long.txt。因为我们配置的分片规则auto-sharding-long是根据id范围进行分片的,autopartition-long.txt默认配置了三个分片范围,我们只有两台Mysql进行分片,所以这里将最下面的1000M-1500M=2注销掉。

vim autopartition-long.txt

在这里插入图片描述
e、启动Mycat。进入mycat目录下的bin目录,输入以下命令。

./mycat console

在这里插入图片描述console表示将启动信息显示在控制台,如果不需要显示启动信息,可以用:

./mycat start

3.测试
a、使用Navicat连接Mycat,跟连接Mysql一样,Mycat的端口为8066。
在这里插入图片描述
b、成功连接后,可以看到Mycat下面会有一个school的数据库,这是逻辑库,非实体库。school下面有一张students表。
在这里插入图片描述
c、此时,我们两台Mysql服务器上的school_151、school_152下students表中无任何数据。我们在Mycat中新建查询并插入一条id为1的数据
在这里插入图片描述
d、在mycat和mysql_151上,可以查询到这条新添加的数据。
在这里插入图片描述
在这里插入图片描述
e、在mysql_152上表中无任何记录
在这里插入图片描述
f、我们在mycat中再次插入一条id为7777777的记录,此时,mycat表中有了两条记录
在这里插入图片描述
g、mysql_151拥有一条id为1的数据
在这里插入图片描述
h、ysql_152用有一条id为7777777的数据
在这里插入图片描述
至此,Mycat成功安装并实现了简单的分库分表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值