myCat配置

最后更新于:2022-10-14 11:23:35

server.xml

  1. 配置MyCat的用户名,密码,权限,schema等
  2. 如同给MyCat新建用户一样
  3. 客户端连接MyCat与连接mysql相同

file

相对于root用户,user用户多了一个readonly标签,表示此用户只有查询权限,没有增删改的权限

使用user用户新增数据
file

提示
file

schema.xml

  1. 配置dataHost(节点主机),包括读host,写host
  2. 配置dataNode(数据节点),指定到具体的数据库
  3. 配置schema,表名、数据节点、分片规则
dataHost
  1. name:节点主机名称
  2. maxCon:指定每个读写实例连接池的最大连接
  3. minCon:指定每个读写实例连接池的最小连接,即初始化连接池的大小
  4. balance:读负载均衡类型,,”0”代表不开启读写分离,1和2读写均匀分配,3读落在readHost上
  5. writeType:写操作负载均衡类型,”0”表示所有写操作发送到第一个writeHost,第一个挂了切换到还生存的第二个writeHost,1代表随机。
  6. dbType:指定连接的数据库类型,目前支持二进制的Mysql协议,还有其他的JDBC连接的数据库。例如mongodb、oracle、spark等
  7. dbDriver:指定连接数据库的驱动,目前可选指为native和JDBC。native支持mysql和mariadb,其他数据库需要用JDBC驱动
  8. switchType:自动切换标识,”1”为默认值,表示不自动切换,其他可选指为”1”、”2”,
  9. tempReadHostAvailable:writeHost失联后,其下的readHost仍旧可用,默认0,可选值0、1
writeHost

配置对应的数据库连接,如果有多个读库,比如数据库一主多从,writeHost对应主数据库,readHost对应从数据库。从数据库可以都写在此标签内。如果balance设置为0,则在进行读操作的时候,所有的请求都会落在writeHost对应的数据库上,如果配置的为1和2,则都有可能,如果配置的为3,则落在writeHost里面配置的readHost对应的数据库上

dataNode
  • name:节点名称
  • dataHost: 配置好的dataHost名称
  • database:dataHost对应数据连接中的库名
schema
  • name: 与server.xml中的name对应
  • checkSQLschema:查询操作时,检查sql语句中的库名
  • sqlMaxLimit:检索时默认检索的条数
  • randomDataNode: 属性定义将一些随机语句发送到该数据节点中
  • table.name 属性定义逻辑表的名字,必须唯一不能重复且需要与数据库中的物理表名一致。使用逗号分割配置多个表,即多个表使用这个配置
  • table.dataNode 属性指定物理表所在数据节点的名称,配置多个数据节点时需按索引顺序并使用逗号分隔,或指定一个索引范围:dn1$0-743。注意数据节点定义之后,顺序不能再发生改变,否则会导致数据混乱
  • table.rule 属性用于指定分片规则名称,对应rule.xml中的tableRule标签的name属性,如无需分片可以不指定
  • table.primaryKey 属性指定逻辑表中的主键,也是需要与物理表的主键一致
  • table.splitTableNames 属性定义是否允许多个表的定义

关于mycat修改重启

在mycat运行过程中,会遇到需要修改mycat参数的时候,修改完毕以后想要参数生效,就需要重启mycat.但是重启mycat就会使所有的连接断开然后重新建立

不重启mycat使参数生效的方法

file
默认的查询limit是100条。修改scheml.xml,让默认的limit为1条
file

mycat的默认端口有两个,分别是8066和9066,8066主要用来做一些数据库的操作,9066是mycat的管理端口
使用9066端口连接以后,打开命令行界面,输入show @@help;指令
file
可以看到所有的支持操作

输入reload @@config;如果是修改了数据源,则使用config_all;
file

再次查询
file
完成