一、环境搭建
环境准备:
- 采用Vmware做虚拟机,3台虚拟机
- Linux centOS 7
- 采用yum方式,其中两台安装MySql
- 检查两台MySQL是否正确
- 下载MyCat软件包
- 第三台机器安装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成功安装并实现了简单的分库分表。