mysql数据库中怎么利用mycat实现读写分离
这期内容当中小编将会给大家带来有关mysql数据库中怎么利用mycat实现读写分离,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
1、部署mycat下载[root@mycat~]#wgethttp://dl.mycat.io/1.6.5/Mycat-server-1.6.5-release-20180122220033-linux.tar.gz解压[root@mycat~]#tarxfMycat-server-1.6.5-release-20180122220033-linux.tar.gz-C/usr/local/1.1重要配置文件:server.xml schema.xml
#####配置Mycat认识配置文件MyCAT目前主要通过配置文件的方式来定义逻辑库和相关配置:/usr/local/mycat/conf/server.xml定义用户以及系统相关变量,如端口等。其中用户信息是前端应用程序连接mycat的用户信息。/usr/local/mycat/conf/schema.xml定义逻辑库,表、分片节点等内容。1.2配置server.xml
vimserver.xml<!--下面的用户和密码是应用程序连接到MyCat使用的.schemas配置项所对应的值是逻辑数据库的名字,这个名字需要和后面schema.xml文件中配置的一致。--><username="mycatdb"defaultAccount="true">//name=链接myacat的用户<propertyname="password">1</property>//链接mycat的用户密码<propertyname="schemas">mycat_db</property>//虚拟库,链接上mycat看到的库名!!下面是一些被注释掉的的配置,根据自己的需要来进行配置,不需要可以不用管。<!--表级DML权限设置--><!--<privilegescheck="false"><schemaname="TESTDB"dml="0110"><tablename="tb01"dml="0000"></table><tablename="tb02"dml="1111"></table></schema></privileges>--></user><!--下面是另一个用户,并且设置的访问TESTED逻辑数据库的权限是只读<username="mycatuser"><propertyname="password">123</property><propertyname="schemas">mycat_db</property><propertyname="readOnly">true</property></user>--></mycat:server>
上面配置了虚拟库mycat_db,那么必须在 schema.xml
文件中也配置这个逻辑库,否则报错,启动 mycat 失败 ==
由于原文件较乱,可以将原文件bak掉,自己新建一个schema.xml,插入以下配置
<?xmlversion="1.0"?><!DOCTYPEmycat:schemaSYSTEM"schema.dtd"><mycat:schemaxmlns:mycat="http://io.mycat/"><schemaname="mycat_db"//逻辑库名称,与server.xml的一致checkSQLschema="false"//不检查sqlMaxLimit="100"//最大链接数dataNode="aa">//数字节点名,随意起,要与下方dataNodename一致<!--这里定义的是分库分表的信息--></schema><dataNodename="aa"//数据节点的名称dataHost="localhost1"database="mycat_test"/>//主机组;真实的数据库名称<dataHostname="localhost1"//主机组maxCon="1000"minCon="10"//连接balance="1"//负载均衡writeType="0"//写模式配置dbType="mysql"dbDriver="native"//数据库配置switchType="1"slaveThreshold="100"><heartbeat>selectuser()</heartbeat>//健康检查<!--canhavemultiwritehosts--><writeHosthost="hostM1"url="192.168.10.129:3306"user="hjt"password="1">//mycat用了连接真实数据库的用户和密码<!--canhavemultireadhosts--><readHosthost="hostS2"url="192.168.10.130:3306"user="hjt"password="1"/>//同上,需要在数据库里创建并授权</writeHost></dataHost></mycat:schema>1.3.1关于配置文件schema.xml里balance ,writeType的官方文档
balance属性负载均衡类型,目前的取值有3种:1.balance="0",不开启读写分离机制,所有读操作都发送到当前可用的writeHost上。2.balance="1",全部的readHost与standbywriteHost参与select语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且M1与M2互为主备),正常情况下,M2,S1,S2都参与select语句的负载均衡。3.balance="2",所有读操作都随机的在writeHost、readhost上分发。4.balance="3",所有读请求随机的分发到wiriterHost对应的readhost执行,writerHost不负担读压力,注意balance=3只在1.4及其以后版本有,1.3没有。writeType属性负载均衡类型,目前的取值有3种:1.writeType="0",所有写操作发送到配置的第一个writeHost,第一个挂了切到还生存的第二个writeHost,重新启动后已切换后的为准,切换记录在配置文件中:dnindex.properties.2.writeType="1",所有写操作都随机的发送到配置的writeHost,1.5以后废弃不推荐。switchType属性--1表示不自动切换。-1默认值,自动切换。-2基于MySQL主从同步的状态决定是否切换。
文档链接:http://www.mycat.io/document/mycat-definitive-guide.pdf
2、启动[root@mycat~]#/usr/local/mycat/bin/mycatstart支持以下参数start|restart|stop|status2.1添加mycat连接数据库的用户
mysql 里面
mysql>createuser'hjt'@'%'idenfitiedby'1';//创建用户grantallonmycat_test.*to'hjt'@'%';//授权flushprivileges;//刷新授权表2.2测试用户
测试在 mycat 的机器上测试用户权限有效性
测试是否能正常登录上 主从服务器
mysql-uhjt-p1-h292.168.10.129mysql-uhjt-p1-h292.168.10.1302.3测试mycat
用客户端进行测试,能否登录mycat
注意端口号是:8066
root@mysqlclient~]#mysql-umycatdb-p1-h292.168.10.128-P8066MySQL[(none)]>showdatabases;+----------+|DATABASE|+----------+|mycat_db|+----------+1rowinset(0.00sec)
上述就是小编为大家分享的mysql数据库中怎么利用mycat实现读写分离了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。