博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mycat 部署测试
阅读量:5878 次
发布时间:2019-06-19

本文共 3010 字,大约阅读时间需要 10 分钟。

hot3.png

今天抽空来整个测试环境,搭建mycat对mysql进行分库分表。做个记录方便以后查看。

环境部署

首先是下载mycat  http://www.mycat.io/  我下的是1.6.6-release

然后java jdk  我下的1.8 

docker 的安装,pull  mysql的镜像 (mysql:last版本是8 也可以pull5.6|5.7)

docker run -p 3307:3306 --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql

容器启动后 进入容器再次设置root密码(不然连接会报错 2059 -authentication plugin 'caching_sha2_password'……)

docker exec -it mysql bashmysql -uroot -p123456ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

我又找2台linux 重复mysql 容器创建步骤

192.168.1.19 是master 运行mycat 也是分库hostM1

192.168.1.242 192.168.1.243 是分库物理host

将 mycat 传到master的linux上去 解压

tar -zxvf xxxx.tarmv /usr/local/Mycat

将jdk 解压

mv /usr/local/javavi /etc/profile

添加以下环境变量

export MYCAT_HOME=/usr/local/Mycatexport JAVA_HOME=/usr/local/javaexport JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=$JAVA_HOME/libexport PATH=$PATH:$JAVA_HOME/bin

立即生效

source /etc/profile

然后就是mycat 的3个配置文件了

1 server.xml

druidparser
1
8066
9066
123456
TESTDB

2 rule.xml (这里采用最简单的取模的规则分表)

id
mod-long
3

3 schema.xml (这里是3台物理机)

select user();
select user();
select user();

然后3个xml放到/usr/local/Mycat/conf 下

启动mycat

cd /usr/local/Mycat./mycat console#也可以./mycat starttail -f -n 10  /usr/local/Mycat/logs/mycat.log

出现 MyCAT Server startup successfully. see logs in logs/mycat.log 则开启成功了!

这里踩过个坑!开启mycat ,报如下错误 (原因是其他host没有建数据库db2 db3)

0cdab3207e8b140f5cc757a7ac5aeb908bd.jpg

成功之后 用Navicat 连接 192.168.1.19:8066  root 123456

5f2d90e5694d2f94cfa7720fc75320ab10d.jpg

然后创建表

CREATE TABLE `user` (    `ID` int(11) NOT NULL,    `NAME` varchar(100) default NULL,    `SEX` int(11) NOT NULL,    PRIMARY KEY  (`ID`)  )

插入数据看看

-- 这个会报错 1064 - partition table, insert must provide ColumnListINSERT INTO `user` VALUES ('1', 'mycat', '1');  INSERT INTO `ussr` VALUES ('2', 'mydog', '2');  -- 解决方法insert into user(id,name,sex) values(1,'a1',2);insert into user(id,name,sex) values(2,'a2',1);insert into user(id,name,sex) values(3,'a3',1);insert into user(id,name,sex) values(4,'a4',2);insert into user(id,name,sex) values(5,'a5',1);insert into user(id,name,sex) values(6,'a6',1);

再去3个库看看数据分布情况  

06caa96140be0640c68e1c8b096b3789fde.jpgb6ee7099cdb2c3e2db430a1a3405013e09a.jpge2af5fd764876a0a0ffbc62c936b97fb03f.jpg

以上简单的mycat搭建配置就成功了 这只是最简单的测试,离上线产品还老远了!

后续再研究下 主从复制 读写分离 和 其他的分表规则,之后再结合程序实现全局唯一ID生成 实现高可用等等……

转载于:https://my.oschina.net/pentakill/blog/3000261

你可能感兴趣的文章
如何在Linux用chmod来修改所有子目录中的文件属性?
查看>>
Applet
查看>>
高并发环境下,Redisson实现redis分布式锁
查看>>
关于浏览器的cookie
查看>>
Hyper-V 2016 系列教程30 机房温度远程监控方案
查看>>
.Net 通过MySQLDriverCS操作MySQL
查看>>
JS Cookie
查看>>
ubuntu Unable to locate package sysv-rc-conf
查看>>
笔记:认识.NET平台
查看>>
cocos2d中CCAnimation的使用(cocos2d 1.0以上版本)
查看>>
【吉光片羽】短信验证
查看>>
MacBook如何用Parallels Desktop安装windows7/8
查看>>
gitlab 完整部署实例
查看>>
GNS关于IPS&ASA&PIX&Junos的配置
查看>>
七天学会ASP.NET MVC (四)——用户授权认证问题
查看>>
upgrade to iOS7,how to remove stroyboard?
查看>>
影响企业信息化成败的几点因素
查看>>
SCCM 2016 配置管理系列(Part8)
查看>>
zabbix监控部署
查看>>
struts中的xwork源码下载地址
查看>>