mycat设置读写分离

MyCat分库分表

开源的分布式数据库中间件,可以看作一个数据库代理。本身是一个java语言开发的服务器,主要用于读写分离和分库分表。

搭建环境

下载mycat,直接解压mycat

进入到bin目录下,执行

#开始
./mycat start
#关闭
./mycat stop
#使用mysql命令行来登录mycat 默认数据访问端口是8066,
./mysql -umycat -p -P8066 -h127.0.0.1

配置数据库

server.xml 主要用于配置mycat的服务器信息(配置账号、安全认证等)

schema.xml 用于配置逻辑数据库的映射、表、分片规则,数据结点及真实的数据库信息(配置读写分离、分库分表)

配置读写分离

配置server.xml

<!--mycat服务器的用户名和密码,逻辑数据库-->
<user name="root" defaultAccount="true">
	<property name="password">123456</property>
	<property name="schemas">MYCATDB</property>
</user>
<!--只读用户-->
<user name="user">
	<property name="password">123456</property>
	<property name="schemas">MYCATDB</property>
	<property name="readOnly">true</property>
</user>

配置schema.xml

schema用于配置逻辑库,只做读写分离,不做分库分表,schema标签里面不用配置table

<!--配置逻辑数据库的映射-->
<!--
checkSQLschema : 开启sql检查
sqlMaxLimit : 最多查多少条sql
-->
<schema name="MYCATDB" checkSQLschema="false" sqlMaxLimit="100" dateNode="dn1">
    <!--分片操作/分表
	<table name="travelrecord" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />
-->
</schema>
<!--配置真实的数据库-->
<dataNode name="dn1" dataHost="localhost1" database="真实数据库名称" />
<!--balance = "1" 表示开启读写分离,0表示不开启读写分离-->
<!--switchType 1 自动切换 -1 不切换 故障切换-->
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
			  writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
    <!--主库/写库-->
    <writeHost host="host3306" url="localhost:3306" user="root" password="123456">
        <!--从库/读库-->
		<readHost host="host4406" url="localhost:4406" user="root" password="xxx" />
	</writeHost>
</dataHost>

通过schema配置逻辑数据库的映射,使用schema中的dataNode属性链接dataNode标签来映射database指定的真实数据库,再通过dataNode标签中的dataHost的属性来链接dataHost标签中的writeHost和readHost来指定ip和端口从而定位主库和从库。

posted @ 2021-06-22 17:01  zhaojunjin  阅读(133)  评论(0编辑  收藏  举报