MySql - Linux Mycat安装&水平切分

MySql - Linux Mycat安装&水平切分

目录

准备环境

安装Mycat

 配置Macat

server.xml配置 

 schema.xml配置

 rule.xml配置

 启动Mycat

 报错解决

启动成功 

 客户端连接测试

 存储数据测试


准备环境

  • 三台虚拟机,192.168.213.156 和 192.168.213.162 分别安装mysql 8 ,192.168.213.163 安装Mycat

Mycat 1.6稳定版下载

github下载地址

Mycat DL下载地址

Mycat官网

Macat官方文档

安装Mycat

cd /usr/local/

tar -zxvf /home/chenyb/software/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz

 配置Macat

  • Mycat配置文件都在 ./conf/ 文件夹下
    • server.xml:服务配置文件,主要用于用户配置,与用户对应的 schema 关系
    • schema.xml:数据源映射配置文件
    • rule.xml:规则配置文件
    • *.txt:映射策略文件关键属性配置文件

  • server.xml配置 

    • user:配置的是mycat访问的用户,习惯与mysql配置一致
    • name:用户名
    • password:访问密码
    • schemas:server.xmlschema.xml 中的 schemas 属性呼应关系

 schema.xml配置

  • name
    • schema-name:server.xmlschema.xml 中的 schemas 属性呼应关系
    • tables-name:Mycat中的虚拟表名
    • dateNode-name:对应的是 tables-dataNode ,多个用“,”分隔
    • dataHost-name:对应的是 dataNode-dataHost
  • schema
    • schema-checkSQLschema:是否开启 schema 检查 SQL 功能
    • schema-sqlMaxLimit:默认分页100,当运行的 SQL 语句中包含limit属性,将覆盖该属性
    • table
      • table-dataNode:对应 dataNode-name 属性
      • table-rule:分表策略,对应着 table.xml 中的 tableRule-name 属性,保持一致
  • dataNode
    • dataNode-dataHost:对应 dataHost-name 属性
    • dataNode-database:对应真实数据库的名称,多个几点数据库名称可以不一致,建议一致
  • dataHost
    • dataHost-maxCon:最大连接数
    • dataHost-minCon:最小空闲数
    • dataHost-balance:负载策略
      • 当balance=0 时,不开启读写分离,所有读操作都发生在当前的writeHost上
      • 当balance=1 ,所有读操作都随机发送到当前的writeHost对应的readHost和备用的writeHost
      • 当balance=2,所有的读操作都随机发送到所有的writeHost,readHost上
      • .当balance=3 ,所有的读操作都只发送到writeHost的readHost上
    • dataHost-writeType
      • writeType="0", 所有写操作发送到配置的第一个writeHost,第一个挂了切到还生存的第二个writeHost,重新启动后已切换后的为准,切换记录在配置文件中:dnindex.properties 
      • writeType="1",所有写操作都随机的发送到配置的writeHost 
      • writeType="2",没实现
    • dataHost-dbType:数据库类型
    • dataHost-dbDriver:数据库驱动
    • dataHost-switchType
      • writeType="0", 所有写操作发送到配置的第一个writeHost,第一个挂了切到还生存的第二个writeHost,重新启动后已切换后的为准,切换记录在配置文件中:dnindex.properties 
      • writeType="1",所有写操作都随机的发送到配置的writeHost
      • writeType="2",没实现
    • dataHost-slaveThreshold:主从延迟阀值
    • writeHost:主库,只写
      • writeHost-host:当前 dataHost 内唯一
      • writeHost-url:数据库连接 ip :端口号
      • writeHost-user:访问数据库的用户
      • writeHost-password:访问数据库的密码
    • readHost:从库,只读
      • readHost-host:当前 dataHost 内唯一
      • readHost-url:数据库连接 ip :端口号
      • readHost-user:访问数据库的用户
      • readHost-password:访问数据库的密码

 rule.xml配置

  • tableRule
    • tableRule-name:对应着 schema.xml 中的 table-rule 属性,保持一致
    • rule
      • tableRule-rule-columns:对应着 Mycat 虚拟表中的 id,根据该属性切分
      • tableRule-rule-algorithm:对应着 function-name 属性,呼应关系
  • function
    • function-name:对应着 tableRule-rule-algorithm 属性,呼应关系
    • function-class:策略实现类
    • function-name:"mapFile" 映射策略文件关键属性配置文件

  •  创建配置的分片表
    • 由于是做水平切分,Mycat不会帮我们创建对应的数据库与表,必须要提前创建好

 启动Mycat

##### console | start | stop | restart | status | dump #####

#打印日志启动
./bin/mycat console


#后台启动
./bin/mycat start

 报错解决

  • 提示的很清除,分片数与配置的节点不一致
  • 将autopartition-long.txt配置文件中的 0、1、2三个节点配置干掉节点2配置即可
  • vm autopartition-long.txt

 

  •  提示的很清除,配置的schema节点不存在
    • server.xml 与 schema.xml schema-name 属性对应关系出了问题
      • 经排查 root 用户的对应关系没有问题,user 用户存在,但是没有对应关系,干掉整体的 user 配置,问题解决

  • JVM配置配置参数过低,将其改大或者干掉限制
    • vim ./conf/wrapper.conf

  •   schena.xml配置错误,已经提示是在第5行

  •  Mycat远程连接无法访问
    • schena.xml中配置的连接方式不对,无法连接
    • mysql远程权限或者防火墙等其他限制,无法正常连接

启动成功 

重新启动Mycat

 客户端连接测试

客户端端口:8066

管理端口:9066

 存储数据测试

  • autopartition-long:该策略默认前500万条数据存储在 0 存储节点,500万-1000万数据存储在 1 存储节点
  • 在Mycat客户端插入 id 为 1 的数据,落盘罗在 0 存储节点 (192.168.213.156)

  • 在Mycat客户端插入 id 为 5000001 的数据,落盘罗在 1 存储节点 (192.168.213.162) 

 表示Mycat安装并测试成功,测试的例子为简单的水平切分

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值