1. 安装JAVA环境
1
| sudo apt-get install default-jdk
|
2. 下载wrapper及jar包
1 2 3 4
| 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. 给文件夹写权限
1
| 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
1 2
| cd mycat/bin ./mycat start
|
6. 创建数据库
使用Navicat或者dbever连接到MyCat(如果连不上,可能是MYSQL 8 密码模式造成的,可以修改密码,具体提示可以查看日志)
1 2 3 4 5 6 7 8 9 10 11 12
| 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 :分表的数量。
1 2 3 4 5 6 7 8 9 10 11 12 13
| 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;
|
7. 备忘:
• 不使用MyCat1.6的几点原因:
• Insert操作丢失数据
• 不能批量更新(不支持多语句)