Mycat读写分离部署分享

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mycat读写分离部署分享相关的知识,希望对你有一定的参考价值。

安装配置mycat

涉及到的安装包:

安装包:Mycat-server-1.6-RELEASE-linux.tar.gz

依赖环境:jdk-7u75-linux-x64.tar.gz

1安装JDK

(1)创建java目录


# mkdir -p /usr/local/java

(2)上传JDK到/usr/local/java目录下

(3)解压jdk-7u75-linux-x64.tar.gz


# cd /usr/local/java

# tar -zxvf jdk-7u75-linux-x64.tar.gz

(4)设置JAVA_HOME:修改配置文件vi /etc/profile,最后一行添加以下代码


export JAVA_HOME=/usr/local/java/jdk1.7.0_75

export PATH=$HOME/bin:$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib

(5)使配置生效:


# source /etc/profile

2创建mycat用户并设置密码


# useradd mycat

# passwd mycat

3安装mycat

(1)上传Mycat-server-1.6-RELEASE-linux.tar.gz安装包到/usr/local/目录下;

(2)解压Mycat


# cd /usr/local/

# tar -zxvf Mycat-server-1.6-RELEASE-linux.tar.gz

设置mycat的环境变量,编辑vi /etc/profile,最后一行添加以下代码


export MYCAT_HOME=/usr/local/mycat

export PATH=$PATH:$MYCAT_HOME/bin

使配置生效:


# source /etc/profile

4编辑配置文件schema.xml

(1)路径:/usr/local/mycat/conf/schema.xml


# vi /usr/local/mycat/conf/schema.xml

(2)配置文件内容:


<?xml version="1.0"?>

<!DOCTYPE mycat:schema SYSTEM "schema.dtd">

<mycat:schema xmlns:mycat="http://org.opencloudb/">;

<schema name="zabbix" checkSQLschema="false" sqlMaxLimit="100">  ##修改mycat数据库名称为zabbix

    <table name="user" dataNode="dn1,dn2" rule="auto-sharding-long" />  

    <table name="stat_tcp_stream" dataNode="dn2,dn3" rule="auto-sharding-long" />  

</schema>  

<dataNode name="dn1" dataHost="localhost1" database="zabbix" />  ##修改mycat数据库database为zabbix

<dataNode name="dn2" dataHost="localhost2" database="mpos_tshark_miner2014" />  

<dataNode name="dn3" dataHost="localhost3" database="mpos_tshark_hrtel" />  

<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0" dbType="mysql" dbDriver="jdbc" writeType="0" switchType="1"  slaveThreshold="100">  

    <heartbeat>select user()</heartbeat>  

    <writeHost host="suse01" url="web01:3306" user="zabbix" password="zabbix123"></writeHost>  ##修改host名称为数据库服务器ip  user与password对应修改

</dataHost>  

<dataHost name="localhost2" maxCon="1000" minCon="1" balance="0" dbType="mysql" dbDriver="jdbc">   

    <heartbeat>       </heartbeat>  

     <readHost host="suse02" url="web02:3306" user="zabbix"  password="zabbix123"></readHost>   ##修改host名称为数据库服务器ip  user与password对应修改

 </dataHost>        

</mycat:schema>

注:web01、web02写的是主机名称,web01配置为读,web02配置为写;


5 编辑配置文件server.xml

(1)路径:/usr/local/mycat/conf/server.xml


# vi /usr/local/mycat/conf/server.xml

(2)配置文件内容:


</system>

<user name="root">  

    <property name="password">123456</property>  

    <property name="schemas">zabbix</property>  

</user>  

<user name="zabbix">  

    <property name="password">zabbix123</property>  

    <property name="schemas">zabbix</property>  

    <property name="readOnly">true</property>  

</user>   

 <!--以上配置的是连接mycat的用户名和密码-->  

</mycat:server>


6 修改wrapper.conf路径

(1)编辑配置文件


# vi /usr/local/mycat/conf/wrapper.conf

(2)配置wrapper.java.command参数java路径(按实际安装路径修改)

#****Wrapper Properties**

#****Java执行命令,默认即可****

wrapper.java.command=java ##修改java路径为/usr/local/java/java-*/bin/java

wrapper.working.dir=..

……….

……….

Wrapper.java.additional.5=-XX:MaxDirectMemorySize=4G #第31行根据需要配置相应的内存大小


7 编辑mycat日志类型

(1)修改log4j2.xml日志类型


# vi /usr/local/mycat/conf/log4j2.xml

(2)配置内容:


修改<asyncRoot level="info"(可以设置为off、error 、warning生产环境切记不可为debug)
<logger name="org.springframework" level="INFO"></logger> ##修改info为off
<logger name="org.mybatis" level="INFO"></logger>
<root level="all">
<appender-ref ref="Console"/>
<appender-ref ref="RollingFileInfo"/>
<appender-ref ref="RollingFileWarn"/>
<appender-ref ref="RollingFileError"/>
</root>
</loggers>


8 编辑hosts配置

1、在Mycat-1主机上


# vi /etc/host

192.168.1.60  web01

192.168.1.61  web01

2、在Mycat-2主机上


# vi /etc/host

192.168.1.60  web02

192.168.1.61  web02

备注:

(1)192.168.1.60为数据库主库的IP地址;192.168.1.61为数据库从库的IP地址;

(2)web01、web02分别是当前mycat服务器的hostname

(3)两台mycat服务器均需要做同样的操作

(4)数据库服务与mycat服务器跨主机部署采用如上配置


9 启动mycat

运行命令:


# /usr/local/mycat/bin/mycat start (重启mycat restart,关闭 mycat stop)

10 测试mycat

使用Navicat for MySQL软件连接mycat:

端口号为8066

账户密码为server.xml中文件账号和密码;以实际数据库配置帐号为准;

说明:进行读写操作,查看/usr/local/mycat/logs/相关日志。

至此完成mycat读写分离部署。

以上是关于Mycat读写分离部署分享的主要内容,如果未能解决你的问题,请参考以下文章

MyCat 部署读写分离-分库,未分表

视频分享基于MyCat的MySQL高可用读写分离集群

mysql读写分离实现 jdk+mycat环境部署

MYSQL读写分离解决方案:MYCAT部署实录

MyCat实现读写分离+分库分表+全局表

docker安装mycat并实现mysql读写分离和分库分表