server.xml
- 配置MyCat的用户名,密码,权限,schema等
- 如同给MyCat新建用户一样
- 客户端连接MyCat与连接mysql相同
相对于root用户,user用户多了一个readonly标签,表示此用户只有查询权限,没有增删改的权限
使用user用户新增数据
提示
schema.xml
- 配置dataHost(节点主机),包括读host,写host
- 配置dataNode(数据节点),指定到具体的数据库
- 配置schema,表名、数据节点、分片规则
dataHost
- name:节点主机名称
- maxCon:指定每个读写实例连接池的最大连接
- minCon:指定每个读写实例连接池的最小连接,即初始化连接池的大小
- balance:读负载均衡类型,,”0”代表不开启读写分离,1和2读写均匀分配,3读落在readHost上
- writeType:写操作负载均衡类型,”0”表示所有写操作发送到第一个writeHost,第一个挂了切换到还生存的第二个writeHost,1代表随机。
- dbType:指定连接的数据库类型,目前支持二进制的Mysql协议,还有其他的JDBC连接的数据库。例如mongodb、oracle、spark等
- dbDriver:指定连接数据库的驱动,目前可选指为native和JDBC。native支持mysql和mariadb,其他数据库需要用JDBC驱动
- switchType:自动切换标识,”1”为默认值,表示不自动切换,其他可选指为”1”、”2”,
- 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使参数生效的方法
默认的查询limit是100条。修改scheml.xml,让默认的limit为1条
mycat的默认端口有两个,分别是8066和9066,8066主要用来做一些数据库的操作,9066是mycat的管理端口
使用9066端口连接以后,打开命令行界面,输入show @@help;指令
可以看到所有的支持操作
输入reload @@config;如果是修改了数据源,则使用config_all;
再次查询
完成