MYSQL-mycat数据库中间件参数配置

文章目录

  • MYSQL-mycat数据库中间件参数配置
    • 1. mycat中间件的作用
    • 2. server.xml配置
    • 3. schema.xml配置

MYSQL-mycat数据库中间件参数配置

1. mycat中间件的作用

一主一从+读写分离:

img

双主复制+读写分离:

MYSQL-mycat数据库中间件参数配置_第1张图片

2. server.xml配置

wabong用户可读可写,rabong只读不可写
[root@master conf]# cat server.xml


<mycat:server xmlns:mycat="http://io.mycat/">
	<system>
	<property name="defaultSqlParser">druidparserproperty>
	system>
	
	
	<user name="wabong">
	<property name="password">123456property>
	<property name="schemas">testproperty>
	user>
	
	<user name="rabong">
	<property name="password">123456property>
	<property name="schemas">testproperty>
	<property name="readOnly">trueproperty>
	user>
mycat:server>
参数 作用
定义mycat服务配置
定义一个system
变量值 定义标签及其对应的值
mycat用户名
123456 mycat用户对应的密码
test 可登录数据库名
true 表示该用户只能读,不能写

3. schema.xml配置

# 主从复制+读写分离
[root@master conf]# cat schema.xml


<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="test" checkSQLschema="false" sqlMaxLimit="100" dataNode='dn1'>
schema>
<dataNode name="dn1" dataHost="dthost" database="test"/>
<dataHost name="dthost" maxCon="500" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="-1" slaveThreshold="100">
<heartbeat>select user()heartbeat>

<writeHost host="master1" url="192.168.10.10:3306" user="mycat" password="123456">
    
    <readHost host="slave1" url="192.168.10.20:3306" user="mycat" password="123456" />
writeHost>
dataHost>
mycat:schema>


# 双主复制+读写分离
[root@master conf]# cat schema.xml


<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="test" checkSQLschema="false" sqlMaxLimit="100" dataNode='dn1'>
schema>
<dataNode name="dn1" dataHost="dthost" database="test"/>
<dataHost name="dthost" maxCon="500" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="-1" slaveThreshold="100">
<heartbeat>select user()heartbeat>

<writeHost host="master1" url="192.168.10.10:3306" user="mycat" password="123456" >
writeHost>

<writeHost host="master1" url="192.168.10.20:3306" user="mycat" password="123456" >
writeHost>
dataHost>
mycat:schema>
参数 作用
schema标签
定义一个schema标签
name=“test” schema标签名称
checkSQLschema=“false” 若数据库名为schema,该参数为true,则去除sql语句中表的前缀数据库名schema。默认不去除,即值为false。
sqlMaxLimit=“100” 查询结果在缺省limit语句时,只显示100条记录。
dataNode=‘dn1’ 定义mycat中的数据节点,也称数据分片。一个dataNode标签即一个独立的数据分片。
定义一个dataNode数据分片标签
name=“dn1” dataNode标签名称
dataHost=“dthost” 数据节点所属数据库实例
database=“test” 数据节点所属数据库实例上的具体数据库
定义数据库实例标签
name=“dthost” 数据库实例标签名
maxCon=“500” 每个读写实例连接池的最大连接数
minCon=“10” 每个读写实例连接池的最小连接数
balance=“1” 负载均衡类型。
0:不开启读写分离, 所有读都给writeHost。
1:所有的readHost和stand by writeHost主机参与select的负载均衡。
2:读操作随机分给readHost和writeHost
3:读操作随机分给writeHost所对应的readHost上执行,writeHost不进行读操作。
writeType=“0” 0:所有写操作分配给第一个writeHost,第一个writeHost挂了,则分配到第二个存活的writeHost上。第一个恢复后,可在dnindex.properties文件查看切换记录。
1:写操作随机分配给writeHost上,不推荐使用。
dbType=“mysql” 指定后端连接的数据库类型,支持二进制的mysql协议,支持JDBC连接的数据库,如:mongodb、oracle、spark等
dbDriver=“native” 指定连接后端数据库使用的Driver,可选值为native和JDBC。选择native则可以使用mysql和mariadb数据库,其他数据库使用JDBC驱动。
switchType="-1" -1:不自动切换
1:自动切换
2:基于show slave status;决定是否切换
3:基于mysql galary cluster的切换机制决定是否切换【show status like’wsrep%’;】
一般设置为-1
slaveThreshold=“100” 读写分离从服务器的最大个数
select user() 用于和后端数据库的心跳检测语句
写实例,在dataHost内可定义多个。写实例对应的数据库宕机,则读实例也不可用。写实例内可定义多个读实例。对应主库。
读实例,定义在写实例内。对应从库。
host=“master” 实例名
url=“192.168.10.10:3306” 后端实例连接地址
native:IP地址:端口号
JDBC:jdbc的url
user=“mycat” 后端存储实例的用户名
password=“Abong123.” 后端存储实例的密码
weight=“1” 权重,配置readhost中作为读节点的权重。

通过以上配置,可以很好的实现主从、双主之间的读写分离。

你可能感兴趣的:(MYSQL,mycat,mysql,中间件,数据库,linux)