mycat 读写分离配置

mycat简单介绍(部分摘自官网)

支持1000亿大数据中国第一开源分布式数据库中间件
Mycat之前世今生
2013年阿里的Cobar在某大型项目中使用过程中发现存在一些比较严重的问题,于是第一代改良版——Mycat诞生
Mycat开源以后,一些Cobar的用户参与了Mycat的开发,最终Mycat发展成为一个由众多软件公司的实力派架构师和资深开发人员维护的社区型开源软件。
2014年Mycat首次在上海的《中华架构师》大会上对外宣讲,引发围观,更多的人参与进来,随后越来越多的项目采用了Mycat
2015年6月为止,Mycat项目总共有17个Committer,其中核心参与者的年薪总额超过300万
2015年5月,由核心参与者们一起编写的第一本官方权威指南《Mycat权威指南》电子版发布,众筹预售超过200本,成为开源项目中的首创。
截至2015年4月,超过60个项目采用Mycat,涵盖电信、电子商务、物流、移动应用、O2O的众多领域和公司。
Mycat是什么
一个可以用于MySQL读写分离和高可用的中间件
一个模拟为MySQL Server的超级数据库
一个能平滑扩展支持1000亿大表的分布式数据库系统
一个可管控多种关系数据库的数据库路由器
一个平滑从关系数据升级到大数据的应用中间件

mycat的使用需要安装MySQL并配置主从(读写分离)
请参考:MySQL 主从 http://blog.csdn.net/assassinsshadow/article/details/79277942

1.创建mycat用户

useradd -d /home/mycat mycat

2.下载没有cat http://dl.mycat.io/1.6.5/
选择Mycat-server-1.6.5-release-20180122220033-linux.tar.gz

解压并放到local目录下
tar -zxvf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz
mv mycat ~/local/mycat

3.修改配置文件
主要修改两个配置文件:
schema.xml和server.xml

schema.xml 注:本次仅仅配置读写分离,所以多余的都删掉了



<mycat:schema xmlns:mycat="http://io.mycat/">
    
    <schema name="TESTDB1" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">schema>
        
    <dataNode name="dn1" dataHost="localhost1" database="ms_test" />
    
    <dataHost name="localhost1" maxCon="1000" minCon="10" balance="3" writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
        <heartbeat>select user()heartbeat>
        
        <writeHost host="hostM1" url="主库IP:3306" user="root" password="mysql1234">
            
            <readHost host="hostS2" url="从库IP:3306" user="root" password="mysql1234" />
        writeHost>
    dataHost>
mycat:schema>

server.xml




<mycat:server xmlns:mycat="http://io.mycat/">
    <system>
    <property name="nonePasswordLogin">0property> 
    <property name="useHandshakeV10">1property>
    <property name="useSqlStat">1property>  
    <property name="useGlobleTableCheck">0property>  

        <property name="sequnceHandlerType">2property>
    <property name="subqueryRelationshipCheck">falseproperty> 
       
         
    
    
        
        <property name="processorBufferPoolType">0property>
        
        
        
        
        
        
        
        
        <property name="handleDistributedTransactions">0property>

            
        <property name="useOffHeapForMerge">1property>

        
        <property name="memoryPageSize">64kproperty>

        
        <property name="spillsFileBufferSize">1kproperty>

        <property name="useStreamOutput">0property>

        
        <property name="systemReserveMemorySize">384mproperty>


        
        <property name="useZKSwitch">falseproperty>

        
        

        
        

    system>

    
    
    
    
    
    
    
    

   
    <user name="root" defaultAccount="true">
        <property name="password">123456property>
        <property name="schemas">TESTDB1property>

        
        
    user>

    
    <user name="user">
        <property name="password">userproperty>
        <property name="schemas">TESTDB1property>
        <property name="readOnly">trueproperty>
    user>

mycat:server>

启动之前最好将log的级别改为debug,这样方便查错

修改方法:
进入mycat/conf
vim log4j2.xml
 <asyncRoot level="info" includeLocation="true"> 
 改为   
 <asyncRoot level="trace" includeLocation="true">

启动

进入mycat/bin

cd ~/local/mycat/bin
./mycat start

验证:

进入mycat/bin目录
./mysql -uuser -puser -h127.0.0.1 -P8066 TESTDB1
回车

mycat 读写分离配置_第1张图片
成功!可以插入和查询进行验证.

遇到的错误:

[root@server1 bin]# ./mycat console  
Running Mycat-server...  
wrapper  | --> Wrapper Started as Console  
wrapper  | Launching a JVM...  
wrapper  | JVM exited while loading the application.  
jvm 1    | Invalid maximum heap size: -Xmx4G  
jvm 1    | The specified size exceeds the maximum representable size.  
jvm 1    | Error: Could not create the Java Virtual Machine.  
jvm 1    | Error: A fatal exception has occurred. Program will exit.  
wrapper  | INT trapped.  Shutting down.  
wrapper  | <-- Wrapper Stopped  

解决办法:
#最大内存不足Xmx4G,设置相关启动的配置文件  
vi /usr/local/mycat/conf/wrapper.conf  

wrapper.java.additional.10=-Xmx4G  
wrapper.java.additional.11=-Xms1G  
改为:  
wrapper.java.additional.10=-Xmx512M  
wrapper.java.additional.11=-Xms64M  

你可能感兴趣的:(mycat,java,mysql,java,mysql)