1.在对应目录下执行
# 下载zip压缩包
wget http://dl.mycat.org.cn/2.0/install-template/mycat2-install-template-1.21.zip
# 下载jar包
wget http://dl.mycat.org.cn/2.0/1.21-release/mycat2-1.21-release-jar-with-dependencies.jar
# 解压zip包
unzip mycat2-install-template-1.21.zip
# 将jar 包放在解压后的对应目录
mv mycat2-1.21-release-jar-with-dependencies.jar mycat/lib/
2.在已经安装好的MySQL数据库中执行
# 创建mycat用户
CREATE USER 'mycat'@'%' IDENTIFIED BY '123456';
# 授权
GRANT ALL PRIVILEGES ON *.* TO 'mycat'@'%' ;
# 刷新权限
flush privileges;
注:可能密码设置为123456,可能不满足mysql的安全策略要求,参考如下文章解决:
修改MySQL安全策略
3.配置prototype数据源
vim mycat/conf/datasources/prototypeDs.datasource.json
修改对应的参数(user、password、ip、端口等)
{
"dbType":"mysql",
"idleTimeout":60000,
"initSqls":[],
"initSqlsGetConnection":true,
"instanceType":"READ_WRITE",
"maxCon":1000,
"maxConnectTimeout":3000,
"maxRetryCount":5,
"minCon":1,
"name":"prototypeDs",
"password":"123456",
"type":"JDBC",
"url":"jdbc:mysql://IP:3306/mysql?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8",
"user":"mycat",
"weight":0
}
4.用户配置
# 进入对应目录
cd mycat/conf/users/
# 编辑对应用户
vi root.user.json
{
"dialect":"mysql",# 使用语言,默认mysql
"ip":null,# 客户端访问ip,当填写后会对客户端的ip进行限制
"password":"123456", # 密码
"transactionType":"proxy", # 事务类型,默认proxy,xa:分布式事务,需要确认存储节点集群类型是否支持XA
"username":"root" # 连接中间件逻辑库的用户名
}
5.逻辑库表配置
# 进入对应的目录
cd mycat/conf/schemas
# 编辑对应的库
vi 库名.schema.json
{
"customTables":{},
"globalTables":{},
"normalTables":{
"spm_baseline":{
<!-- 建表SQL -->
"createTableSQL":"CREATE TABLE mysql.spm_baseline (\n\t`id` bigint(22) NOT NULL AUTO_INCREMENT,\n\t`sql` longtext,\n\t`fix_plan_id` bigint(22) DEFAULT NULL,\n\tKEY `id` (`id`)\n) ENGINE = InnoDB CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci",
"locality":{
"schemaName":"mysql", // 逻辑库名
"tableName":"spm_baseline", // 物理表
"targetName":"prototype" // 目的数据源或集群
}
}
},
"schemaName":"mysql",
"shardingTables":{},
"targetName":"prototype"
}
6.启动MyCat
cd mycat/bin
./mycat start
./mycat status
./mycat start 启动
./mycat stop 停止
./mycat console 前台运行
./mycat restart 重启服务
./mycat pause 暂停
./mycat status 查看启动状态
7.连接MyCat
# 可直接使用mysql客户端连接mycat即可
# MySQL8.0的客户端要加上-A参数
# 加上-c参数是为了保留注释,因为mycat中一些在线配置更新是用注释的方式执行的
[root@mycat ~]# mysql -uroot -p123456 -P8066 -h192.168.1.16 -c -A