(一)mycat的安装和连接

mycat安装:

mycat运行需要jdk的支持,首先下载安装jdk,采用rpm文件安装方式,注意匹配linux系统位数

上jdk官网下载jdk的rpm文件:

下载好上传到linux系统中,进行安装:

rpm -ivh jdk

采用rpm方式安装会把java的环境自动配置好

 

上mycat官网下载mycat:

下载好直接解压,然后移动到/usr/local下:

可以看到可执行文件夹bin和配置文件夹conf

进入bin:

可看到启动脚本mycat,我们直接启动:./mycat console

 

启动会报错:java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException

解决办法为:

在/etc/hosts 添加 主机名字映射到IP地址,编辑文件hosts添加一行:

192.168.199.166 mycat1

前面为本机ip,后为主机name

编辑完再次启动mycat:

启动成功

我们用mysql客户端或者mysql服务连接,ip为mycat主机ip,用户名root,密码123456,端口8066:

连接成功之后可看到唯一的数据库TESTDB,再看表:

上述登陆账号、数据库和表都是虚拟出来的,存在于mycat配置文件当中,并不是真正存在。

 

mycat连接真实mysql服务

编辑配置文件 /usr/local/mycat/conf/schema.xml

修改<writeHost host="hostM1" 节点:

<writeHost host="hostM1" url="192.168.11.10:3306” user="repl" password="repl" >

<readHost host="hostS2" url="192.168.11.10:3306" user="repl" password="repl" />

</writeHost>

配置好一个写节点和一个读节点

可以看到所依赖的三个数据库,分别是db1、db2、db3,我们需要在目标mysql上创建这三个库

然后我们再重启mycat服务

即可连上目标mysql

连接上就可以通过mycat创建表,插入数据,都将体现到目标数据库中,依据schema.xml来选择数据库和表,我们连接mycat创建表employee,插入数据:

再看目标数据库中数据:

发现只有db1的employee表中有数据,原因?

我们看 schema.xml中有:

datanode='dn1,dn2' rule="sharding-by-intfile"

sharding-by-intfile是一种mycat一种分片规则,具体存放在rule.xml配置文件中:

hash-int是什么?

PartitionByFileMap为mycat源码中的java类,注入了属性mapFile,值为partition-hash-int.txt,上述分片规则就是在这个txt文件中:

表示sharding_id值为10000时存放在第一个库,10010时存放在第二个库,规则可按实际业务需求手动配置。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值