(一)mycat的安装和连接

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a281246240/article/details/83515077

mycat安装:

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

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

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

rpm -ivh jdk

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

上mycat官网下载mycat:

扫描二维码关注公众号,回复: 4273413 查看本文章

下载好直接解压,然后移动到/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时存放在第二个库,规则可按实际业务需求手动配置。

猜你喜欢

转载自blog.csdn.net/a281246240/article/details/83515077
今日推荐