MySQL实战六:mycat中间件实现读写分离

官网:http://mycat.io/

1:下载mycat
#wget http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz





2:下载jdk-8u45-linux-x64.tar.gz
#tar zxvf jdk-8u45-linux-x64.tar.gz -C /usr/local/


3:设置环境变量
#vi /etc/profile
JAVE_HOME=/usr/local/jdk1.8.0_171
PATH=$PATH:$JAVE_HOME/bin

保存退出,及时生效
#source /etc/profile


4:解压到指定目录
#tar zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/


5:mycat配置
#vi /usr/local/mycat/conf/server.xml
		<user name="myroot">
                <property name="password">1234567</property>
				<!-- 多数据库多表设置 -->
                <property name="schemas">test,wp</property>
				
				
				

                <!-- 表级 DML 权限设置 -->
                <!--
                <privileges check="false">
                        <schema name="TESTDB" dml="0110" >
                                <table name="tb01" dml="0000"></table>
                                <table name="tb02" dml="1111"></table>
                        </schema>
                </privileges>
                 -->
        </user>
		<!--
        <user name="user">
                <property name="password">user</property>
                <property name="schemas">test</property>
                <property name="readOnly">true</property>
        </user> 
		-->




#vi /usr/local/mycat/conf/schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
	
		<!-- 数据库显示的名称不是mysql的名称,而是schema设置的name名称 -->
        <schema name="test" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"> 
        </schema>
		
		<!-- 多个数据库设置 -->
		<schema name="wp" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn2"> 
        </schema>
        
        <dataNode name="dn1" dataHost="myHost" database="test" />
		<dataNode name="dn2" dataHost="myHost" database="wp" />
		
        <dataHost name="myHost" maxCon="1000" minCon="10" balance="3"
                          writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
                <heartbeat>select user()</heartbeat>
                <!-- can have multi write hosts -->
                <writeHost host="MySQL-Master" url="192.168.31.57:3306" user="root" password="123456">
                        <!-- can have multi read hosts -->
                        <readHost host="LVS-Master01" url="192.168.31.55:3306" user="root" password="123456" />
                        <readHost host="LVS-Master02" url="192.168.31.56:3306" user="root" password="123456" />
                </writeHost>
        </dataHost>
</mycat:schema>










6:控制台启动,测试用查看日志
#./bin/mycat console    
正常启动
#./bin/mycat start  
#./bin/mycat stop







7:连接mycat,用的是mycat的账户密码,不是mysql的账户密码

#mysql -h192.168.31.3 -uroot -p123456 -P 8066	#数据端口


MyCat管理
#mysql -h192.168.31.3 -uroot -p123456 -P 9066   #管理端口,没有修改数据权限
mysql> show @@help; 
mysql> show @@datasource;   #查看状态,写了多少次,读了多少次

猜你喜欢

转载自blog.csdn.net/qq_28710983/article/details/80938272