centos7.4 myCat读写分离

Mycat介绍:

  • mycat是最近很火的一款国人发明的分布式数据库中间件,它是基于阿里的cobar的基础上进行开发的
  • 准备环境:
  • db01主   192.168.1.146
  • db02备   192.168.1.147
  • mycat     192.168.1.148
  • 主从同步配置(这里就不介绍了,先把主从同步做了,授权,防火墙关闭等)
  • java环境1.7以上 添加环境变量

搭建mycat

1.下载  可以去官网看看http://www.mycat.io

这个是版本地址 https://github.com/MyCATApache/Mycat-download

在148服务器执行 我下载的是1.5的版本

wget https://raw.githubusercontent.com/MyCATApache/Mycat-download/master/1.5-RELEASE/Mycat-server-1.5.1-RELEASE-20161130213509-linux.tar.gz
tar xvf Mycat-server-1.5.1-RELEASE-20161130213509-linux.tar.gz -C   /usr/local/

加压了,配置两个文件夹就可以,我这只是用到了读写分离(mycat更牛的地方可能实在分库分表

修改配置文件Vim /usr/local/mycat/conf/server.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- - - Licensed under the Apache License, Version 2.0 (the "License"); 
	- you may not use this file except in compliance with the License. - You 
	may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 
	- - Unless required by applicable law or agreed to in writing, software - 
	distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT 
	WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the 
	License for the specific language governing permissions and - limitations 
	under the License. -->
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://org.opencloudb/">
	<system>
	<property name="defaultSqlParser">druidparser</property>
      <!--  <property name="useCompression">1</property>--> <!--1为开启mysql压缩协议-->
	<!-- <property name="processorBufferChunk">40960</property> -->
	<!-- 
	<property name="processors">1</property> 
	<property name="processorExecutor">32</property> 
	 -->
		<!--默认是65535 64K 用于sql解析时最大文本长度 -->
		<!--<property name="maxStringLiteralLength">65535</property>-->
		<!--<property name="sequnceHandlerType">0</property>-->
		<!--<property name="backSocketNoDelay">1</property>-->
		<!--<property name="frontSocketNoDelay">1</property>-->
		<!--<property name="processorExecutor">16</property>-->
		<!-- 
			<property name="mutiNodeLimitType">1</property> 0:开启小数量级(默认) ;1:开启亿级数据排序
	    	<property name="mutiNodePatchSize">100</property> 亿级数量排序批量
			<property name="processors">32</property> <property name="processorExecutor">32</property> 
			<property name="serverPort">8066</property> <property name="managerPort">9066</property> 
			<property name="idleTimeout">300000</property> <property name="bindIp">0.0.0.0</property> 
			<property name="frontWriteQueueSize">4096</property> <property name="processors">32</property> -->
	</system>
	<user name="mycatroot">    <!--对外的连接用户名 -->
		<property name="password">mycatroot</property>  <!--密码 -->
		<property name="schemas">ssc</property> <!-- 对外的数据库 虚拟的可以是别名-->
	</user>

	<user name="user">
		<property name="password">user</property>
		<property name="schemas">ssc</property>
		<property name="readOnly">true</property><!--只读账号 -->
	</user>
	<!-- 
	<quarantine> 
	   <whitehost>
	      <host host="127.0.0.1" user="mycat"/>
	      <host host="127.0.0.2" user="mycat"/>
	   </whitehost>
       <blacklist check="false"></blacklist>
	</quarantine>
	-->

</mycat:server>

配置  schema    Vim /usr/local/mycat/conf/schema.xml

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://org.opencloudb/">
             <!--对应server的数据库   sqlMaxLimit 最大连接   dataNode='dn1' 分库的时候用到 不分也可以 --> 
        <schema name="ssc" checkSQLschema="false" sqlMaxLimit="100" dataNode='dn1'>
        </schema>
        <dataNode name="dn1" dataHost="dthost" database="ssc"/><!-- 真实的数据库-->
        <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="192.168.1.146" url="192.168.1.146:3306" user="root1" password="123456">			
			   <!--配置读服务器-->
			   <readHost host="192.168.1.147" url="192.168.1.147:3306" user="root1" password="123456" />			
			</writeHost>
			<!--配置写备服务器-->
			<writeHost host="192.168.1.147" url="192.168.1.147:3306" user="root1" password="123456" />
			
			</writeHost>
        </dataHost>
</mycat:schema>		

添加mycat的环境变量 

vi /etc/profile  添加

MYCAT_HOME=/usr/local/mycat PATH=$MYCAT_HOME/bin:$PATH

执行 source /etc/profile 命令,使环境变量生效。

启动服务mycat服务 mycat的端口是8066   直接输入mycat会出来他的命令

 mycat  start    #启动

连接测试

mysql -umycatroot -pmycatroot -P8066 -h192.168.1.148

参数说明

schema.xml中 dataHost 内可以定义多个 writeHost 和 readHost。但是,如果 writeHost 指定的后端数据库宕机,
那么这个 writeHost 绑定的所有 readHost 都将不可用。另一方面,由二这个 writeHost 宕机系统会自动的检测
到,并切换到备用的 writeHost 上去。

猜你喜欢

转载自blog.csdn.net/z13615480737/article/details/82496286
今日推荐