Mycat 入门

概述

配置文件说明

  • 1.1 server.xml
    • 资源逻辑配置文件 例如端口 缓存大小,线程占用资源
    • system标签
      所有内容就是mycat软件的属性配置
      defaultSqlParser:默认的sql解析器(实现拦截计算逻
      辑)
    • user标签
      (连接数据用户名称)
      user(连接数据库密码)
      TESTDB(数据库名称是逻辑数据库)
      true

      上例的含义: 可以使用user/user登录mycat,只能看到一
      个数据库TESTDB,并且只读,如果加多个库直接在testDB后加,这里定义的库都是逻辑库,要与后面schemas.xml的配置文件的库对应
  • qurantine(权限控制)
  1. 1 ip白名单中定义了127.0.0.1/127.0.0.2:客户端连接
    mycat只有ip地址满足白名单条件时才能登录




    1.2 sql黑名单

    例如:允许登录的各种客户端,不能通过select *查询

    selectAllColumnAllow”
    将select * 的所有sql语句定义在黑名单中
    true: 缺省值,表示开启,可以执行
    false: 自定义值,表示关闭,定义的sql名称不能执行

schema.xml

1.2schema.xml
schema.xml定义了当前mycat管理维护的逻辑库,逻辑表,
数据分片,计算分片逻辑,后端数据库连接信息等等
1.Schema:逻辑库与server.xml逻辑库对应
2.Table:对应数据库里的逻辑表(用户看到的就是逻辑表,建议定义和数据库里的真实表名称一样)
3.DataNode:对应数据里真实数据名称


“mstest” checkSQLschema=“true”(mstest与server.xmlschema项名称对应)
sqlMaxLimit=“100”>(限制查询最大数据)

“teacher” primaryKey=“ID” (数据库真实名称)
dataNode=“dn1”/>

database=“mstest” />(数据库真实库)
balance=“0”
writeType=“0” dbType=“mysql” dbDriver=“native”
switchType=“1” slaveThreshold=“100”>
select user()
user=“root”(数据库用户)
password=“root”/>(数据库密码)

○ 标签和属性
sqlMaxLimit=“100”>
 schema:可以在mycat配置文件schema.xml中配置多
个schema标签,每一个标签标示一个逻辑
库,server.xml中的user标签中允许访问的逻辑库必
须和schema标签的名称name匹配上

□ name:逻辑库名称,自定义,需要和user标签的
允许访问的逻辑库对应
□ checkSQLSchema:客户端调用sql语句中是否对
表名称自动配置逻辑库名称;select * from
user–>select * from mstest.user(sqlYog
客户端软件有的sql语句需要拼接) true:自动
拼接,false不拼接
□ sqlMaxLimit:查询操作的安全防护,防止查询的
数据过多,自动在没有分页的查询语句中添加
limit 0, 100 查询前100条,防止sql失误导致
一次性查询大量数据对mycat性能造成影响;

dataNode=“dn1,dn2,dn3” rule=“auto-sharding-long” />
 table标签:在schema标签中定义的table标签表示当
前逻辑库中的一张逻辑表,可以根据属性中的定义,
实现分片,非分片的设置
 属性: □ name:逻辑表名称,客户端看到的表名(和真实
表格一致) □ primaryKey:逻辑表中定义的主键名称,默认值
时Id
□ dataNode:定义的值是dataNode标签的name属 性,用来计算分片,非分片表,配置一个
dataNode,分片表格,需要配置多个
□ rule:调用的rule.xml中一个计算分片的具体方
法,如果是罗技表对应多个分片,rule可以实现
数据分片的额计算逻辑(范围约束,hash一致
性)

 dataNode:mycat中实现连接后端数据库,计算分片逻
辑的中间标签
 属性: □ name:分片名称,用来计算数据分片逻辑,按照
配置顺序,dataNode的下标分别是0,1,2,3…
□ dataHost:关联一个dataHost标签使用,每个分
片节点dataNode都会绑定关联一个dataHose
□ database:当前分片使用的后端数据库真实名

minCon=“10” balance=“0”
writeType=“0” dbType=“mysql”
dbDriver=“native” switchType=“1”
slaveThreshold=“100”>

 dataHost:一个dataHost管理一个数据库的集群(高
可用的主从集群),通过设置读池,写池,定义读写分
离逻辑,通过主从备份,定义高可用故障转移;
 属性: □ name:定义一个名称
□ maxCon/minCon:连接当前标签中所有的后端数
据库的连接池属性
□ balance/writeType/switcheType:与读写分离
高可用故障转移逻辑有关
□ dbType/dbDriver:提供后端数据库类型和驱动
类 native就是mysql的驱动类,如果使用其他
类型,定义Driver的全路径名称
□ slaveThreashold:读写分离中是否读取从节点的
判断逻辑有关(从节点有可能同步数据是会延
迟) 配合heartbeat的sql语句 show slave
status
select user()
 hearbeat:mycat判断后端数据库,使用后端数据返回
的各种属性数据可以在心跳语句中执行,默认的
select user() 返回当前登录客户端的用户名使用
和ip地址
user=“root” password=“sf123456”>
 wirteHost:配置一个可以进行写操作的数据库节点信

 属性: □ host:当前节点代号
□ url:ip+端口
□ user
□ password

 readHost:表示一个可以读的节点信息(主从)
 writeHost表示主

你可能感兴趣的:(中间件数据看库)