MyCat使用笔记

MyCat2使用
安装

1. 安装JAVA环境

sudo apt-get install default-jdk

2. 下载wrapper及jar包

wget http://dl.mycat.org.cn/2.0/install-template/mycat2-install-template-1.21.zip
unzip mycat2-install-template-1.21.zip
cd mycat/lib
wget http://dl.mycat.org.cn/2.0/1.22-release/mycat2-1.22-release-jar-with-dependencies-2022-4-27.jar

3. 给文件夹写权限

sudo chmod 777 mycat -Rf #递归修改文件夹权限

因为创建数据库时会在对应的文件夹创建配置文件,所以需要读写权限。同时也会往logs文件夹写日志。

4. 修改配置文件

文件名 作用
e:\mycat\conf\datasources\prototypeDs.datasource.json 配置名称为prototypeDs 的数据源
e:\mycat\conf\users\root.user.json 配置root的登录用户信息
e:\mycat\conf\server.json 配置mycat服务器信息
e:\mycat\conf\simplelogger.properties 配置log级别
e:\mycat\conf\clusters\prototype.cluster.json 配置名称为prototype的集群

5. 启动MyCat

cd mycat/bin
./mycat start # 启动后即可去logs文件夹下查看日志,若日志过于简单可以修改mycat\conf\simplelogger.properties 来调整日志级别。输出更多内容。

6. 创建数据库

使用Navicat或者dbever连接到MyCat(如果连不上,可能是MYSQL 8 密码模式造成的,可以修改密码,具体提示可以查看日志)

create DATABASE myTestDb; # 创建一个数据库 myTestDb
use myTestDb;
-- 分库分表
CREATE TABLE `test`  (
  `ID` varchar(36)  NOT NULL,
  `Name` varchar(255)  NULL DEFAULT NULL,
  `CreateTime` datetime(0) NULL DEFAULT NULL,
  `Phone` varchar(255)  NULL DEFAULT NULL,
  `Address` varchar(255)  NULL DEFAULT NULL,
  PRIMARY KEY (`ID`) USING BTREE,
	INDEX `idx`(`Phone`) USING HASH
) ENGINE = InnoDB DEFAULT  dbpartition by mod_hash(id) tbpartition by mod_hash(id) tbpartitions 10 dbpartitions 10;

其中 dbpartition by mod_hash(id) tbpartition by mod_hash(id) tbpartitions 10 dbpartitions 10 为分库分表的语句,意思是使用mod_hash(id)来进行分库操作,使用mod_hash(id)来进行分表操作。tbpartitions : 分库的数量。dbpartitions :分表的数量。

-- 为了测试多表查询,顾在插入了Test表后又新建了Order表
use myTestDb;
CREATE TABLE `order`  (
  `ID` varchar(36)  NOT NULL,
  `ProductName` varchar(255)  NULL DEFAULT NULL,
  `CreateTime` datetime(0) NULL DEFAULT NULL,
  `CreateOrderUserId` varchar(255)  NULL DEFAULT NULL,
  PRIMARY KEY (`ID`) USING BTREE,
	INDEX `idx`(`ProductName`) USING HASH
) ENGINE = InnoDB DEFAULT  dbpartition by mod_hash(id) tbpartition by mod_hash(id) tbpartitions 10 dbpartitions 10;

-- 下方的语句为MyCat的命令,MyCat的命令通过类似注释的方式去执行。该命令执行刷新物理表的操作。
/*+ mycat:repairPhysicalTable{} */

7. 备忘:

• 不使用MyCat1.6的几点原因:
Insert操作丢失数据
不能批量更新(不支持多语句)

posted @ 2022-05-06 09:42  坚果酱  阅读(172)  评论(0编辑  收藏  举报