百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> Mycat实现MySQL读写分离的配置例子
分享文章到:

Mycat实现MySQL读写分离的配置例子

发布时间:01/15 来源: 浏览: 关键词:
MySQL读写分离在游戏开发应用中非常的常用到了我们在这里来为各位介绍一篇Mycat实现MySQL读写分离的配置例子,希望文章对大家有帮助。

环境

MySQL版本:

mysql> select version();

+————+

| version()  |

+————+

| 5.6.30-log |

+————+

1 row in set (0.05 sec)

确保主从已经同步

             Slave_IO_Running: Yes

            Slave_SQL_Running: Yes

QQ20160627094913

安装mycat

在192.168.10.252上操作

cd /soft

wget https://github.com/MyCATApache/Mycat-download/raw/master/1.4.1-DEV/Mycat-server-1.4.2-20160613220038-linux.tar.gz

tar xf Mycat-server-1.4.2-20160613220038-linux.tar.gz

[root@db01 soft]# mkdir -p /application

[root@db01 soft]# mv mycat /application/

[root@db01 soft]# ll /application/mycat/

total 24

drwxr-xr-x. 2 root root 4096 Jun  7 13:53 bin

drwxrwxrwx. 2 root root 4096 Oct 20  2015 catlet

drwxrwxrwx. 2 root root 4096 Jun  7 13:53 conf

drwxr-xr-x. 2 root root 4096 Jun  7 13:53 lib

drwxrwxrwx. 2 root root 4096 Oct 20  2015 logs

-rwxrwxrwx. 1 root root  211 Jun 13  2016 version.txt

[root@db01 soft]# source /etc/profile

[root@db01 soft]# tail -1 /etc/profile

export PATH=/application/mycat/bin:$PATH

安装java环境

在192.168.10.252操作

 

下载JDK

wget http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-x64.tar.gz

tar xf jdk-8u60-linux-x64.tar.gz -C /application/

ln -s /application/jdk1.8.0_60 /application/jdk

设置java的环境变量

echo ‘export JAVA_HOME=/application/jdk’>>/etc/profile

echo ‘export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib’ >>/etc/profile

echo ‘export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin’ >>/etc/profile

. /etc/profile

[root@db01 soft]# java -version

java version “1.8.0_60”

Java(TM) SE Runtime Environment (build 1.8.0_60-b27)

Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

提示:jdk至少要1.7的版本

创建管理用户

主库上对web用户授权如下:

grant insert,delete,update,select on web.* to web@’192.168.10.%’ identified by ‘123456’;

从库上对web用户授权如下:

提示:由于主库和从库是同步复制的,所以从库上的web用户会自动和主库的一致,即无法实现只读select的授权

revoke insert,update,delete on web.* from web@’192.168.10.%’;

 

配置mycat

修改server.xml,

 

Source code   

 
               123456
 
               web
 
       

 
 
 
       
 
               123456
 
               web
 
               true
 
       

 

注意:

1、这里配置的是可以连接主库的两个用户

用户:web 密码: 123456 给予此用户web数据库增删改查的权限。

用户:web_r 密码:123456 给予此用户web数据库读的权限。

2、这里的web,不一定是你数据库上的真实库名,可以任意指定,只要接下来和schema.xml的配置文件的库名统一即可

修改schemaxml

 

Source code   

 

 

 
 
 
        
 
                 
 
                 


 
 
 
                 
 
                 

 
                 

 
                 
 
                 <table name="hotnews" primaryKey="ID" dataNode="dn1,dn2,dn3"
 
                          rule="mod-long" />
 
                 
 
                 <table name="employee" primaryKey="ID" dataNode="dn1,dn2"
 
                          rule="sharding-by-intfile" />
 
                 <table name="customer" primaryKey="ID" dataNode="dn1,dn2"
 
                          rule="sharding-by-intfile">
 
                         <childTable name="orders" primaryKey="ID" joinKey="customer_id"
 
                                   parentKey="id">
 
                                  <childTable name="order_items" joinKey="order_id"
 
                                            parentKey="id" />
 
                         
 
                         <childTable name="customer_addr" primaryKey="ID" joinKey="customer_id"
 
                                   parentKey="id" />
 
                 

 
                 
 
        
 
        
 
        
 
        
 
        
 
 
 
        <dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
 
                  writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
 
                 select user()
 
                 
 
                 <writeHost host="hostM1" url="192.168.10.230:3306" user="web"
 
                          password="123456">
 
                         
 
 
 
 
 
                 <readHost host="hostS1" url="192.168.10.229:3306" user="web"
 
                          password="123456" />
 
                 
 
                 
 
        
 
 
 

 

需要配置的位置:

 

balance=”1″ writeType=”0″ switchType=”1″

 

balance

 

1、balance=0 不开启读写分离机制,所有读操作都发送到当前可用的writehostle .

2、balance=1 全部的readhost与stand by writeHost 参与select语句的负载均衡。简单的说,双主双从模式(M1àS1,M2àS2,并且M1和M2互为主备),正常情况下,M1,S1,S2都参与select语句的复杂均衡。

3、balance=2 所有读操作都随机的在readhost和writehost上分发

writeType

负载均衡类型,目前的取值有3种:
1、writeType=”0″, 所有写操作发送到配置的第一个writeHost。
2、writeType=”1″,所有写操作都随机的发送到配置的writeHost。
3、writeType=”2″,不执行写操作。

switchType

1、switchType=-1 表示不自动切换
2、switchType=1 默认值,自动切换
3、switchType=2 基于MySQL 主从同步的状态决定是否切换

启动mycat

[root@wohong bin]# ./mycat console
Running Mycat-server…
wrapper |

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有8人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板