Mycat安装与配置

4次阅读

共计 1975 个字符,预计需要花费 5 分钟才能阅读完成。

一、准备工作
3 台 CnetOS7 服务器,我这里是安装在虚拟机上的三台服务器,ip 地址分别为 192.168.0.150,192.168.0.151,192.168.0.152。

150 用来安装 Mycat,151 和 152 提前安装好 Mysql(安装步骤可参考
https://segmentfault.com/a/11…。

在两台 MySQL 服务器上分别创建 school_151,school_152,并在这两个库中创建相同的表 students。

DROP TABLE IF EXISTS `students`;
CREATE TABLE `students` (
  `id` int NOT NULL,
  `name` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

二、安装 Mycat

1、从 Mycat 官网下载安装包:http://www.mycat.org.cn/

2、主页往下翻选择下载版本,这里选择的是 1.6.7.1 版本

3、选择 Linux 版本,开始下载

4、将下载好的文件上传到服务器上,我这里的服务器是虚拟机上 CentOS7 系统

5、解压文件

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

6、解压完毕,将解压后的文件转移到 /usr/local 目录下 (这一步可做可不做)

mv mycat/ /usr/local/

三、配置 Mycat

1、进入 mycat 目录下的 conf 目录

2、修改 server.xml 文件

vim server.xml

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

3、配置 schema.xml

vim schema.xml

首先配置 dataHost,我们这里有两台 Mysql 服务器,所以需配置两个 dataHost。

将两台 Mysql 服务器的 url,user,password 分别配置到 dataHost 下的 writeHost, 先将 writeHost 下的 readHost 注释掉。为了便于记忆这里将两个 dataHost 的 name 分别改为 dh151,dh152。接下来配置 dataNode。

我们配置两个 dataNode,dataHost 属性分别对应前面配置的两个 dataHost 的 name,database 属性对应两台 Mysql 服务器中的 school_151,school_152,并将 name 分别设置为 dn151,dn152。

最后配置 schema。

schema 的 name 属性对应 server.xml 中配置的 schema,shcema 下面的 table 标签的 name 属性与 Mysql 中的表名一致,dataNode 属性对应上面配置的两个 dataNode 标签的 name,rule 属性表示的是分片规则,这里使用的是 auto-sharding-long。这里只保留一个 table 标签,将其他的 table 标签注释掉。保存并退出。

4、修改 autopartition-long.txt。因为我们配置的分片规则 auto-sharding-long 是根据 id 范围进行分片的,autopartition-long.txt 默认配置了三个分片范围,我们只有两台 Mysql 进行分片,所以这里将最下面的 1000M-1500M= 2 注销掉。

vim autopartition-long.txt

5、启动 Mycat。进入 mycat 目录下的 bin 目录,输入以下命令。

./mycat console

console 表示将启动信息显示在控制台,如果不需要显示启动信息,可以用:

./mycat start

四、测试

1、使用 Navicat 连接 Mycat, 跟连接 Mysql 一样,Mycat 的端口为 8066。

2、成功连接后,可以看到 Mycat 下面会有一个 school 的数据库,这是逻辑库,非实体库。school 下面有一张 students 表。

3、此时,我们两台 Mysql 服务器上的 school_151、school_152 下 students 表中无任何数据。我们在 Mycat 中新建查询并插入一条 id 为 1 的数据

在 mycat 和 mysql_151 上,可以查询到这条新添加的数据。

在 mysql_152 上表中无任何记录

我们在 mycat 中再次插入一条 id 为 7777777 的记录,此时,mycat 表中有了两条记录

mysql_151 拥有一条 id 为 1 的数据

mysql_152 用有一条 id 为 7777777 的数据

至此,Mycat 成功安装并实现了简单的分库分表。

正文完
 0