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/"&gt;

<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读写分离部署。

原文地址:http://blog.51cto.com/8355320/2178954

时间: 2024-11-06 19:16:04

Mycat读写分离部署分享的相关文章

LVS+MYCAT+读写分离+MYSQL主备同步部署手册

LVS+MYCAT+读写分离+MYSQL主备同步部署手册 1          配置MYSQL主备同步…. 2 1.1       测试环境… 2 1.2       配置主数据库… 2 1.2.1         编辑my.cnf文件… 2 1.2.2         重启数据库… 2 1.3       锁定主数据库DDL操作… 2 1.4       主备已有数据同步… 2 1.5       停止从服务… 3 1.6       配置备用数据库… 3 1.6.1         编辑my

LVS+MYCAT读写分离+MYSQL同步部署手册(第三版)

1      配置MYSQL主备同步 1.1    测试环境 mysql版本:5.6.24: 操作系统内核版本:Linux-3.13-0-32 主数据库IP:192.168.10.3: 主数据库名:db351353: 备用数据库IP:192.168.10.4: 备用数据库名:db351353. 1.2    配置主数据库 1.2.1   编辑my.cnf文件 #服务器唯一ID,一般取IP最后一段 server_id = 3 #启用二进制日志 log_bin=mysql_bin #需要备份的数据库

【转载】LVS+MYCAT+读写分离+MYSQL主备同步部署手册(邢锋)

By leo | 2015/05/13 0 Comment LVS+MYCAT+读写分离+MYSQL主备同步部署手册 1          配置MYSQL主备同步…. 2 1.1       测试环境… 2 1.2       配置主数据库… 2 1.2.1         编辑my.cnf文件… 2 1.2.2         重启数据库… 2 1.3       锁定主数据库DDL操作… 2 1.4       主备已有数据同步… 2 1.5       停止从服务… 3 1.6      

mysql主从同步+mycat读写分离+.NET程序连接mycat代理

背景 最近新项目需要用到mysql数据库,并且由于数据量大的原因,故打算采用1主1从(主数据库负责增.删.改操作:从数据库负责查操作)的数据库架构,在实现主从之后还要实现读写分离的代理,在网上搜寻了很久,自己也了解了一些资料,目前有三种代理组件:1.mysql_proxy   2.amoeba   3.mycat   我采用了第3种,选择mycat的原因下面会提到. 部署环境 我在我虚拟机下面装了三台Centos7_x64系统: 1.192.168.8.47 主mysql服务器 2.192.16

Mycat读写分离和分库分表配置

Mycat是一个开源的分布式数据库系统,不同于oracle和mysql,Mycat并没有存储引擎,但是Mycat实现了mysql协议,前段用户可以把它当做一个Proxy.其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端mysql存储引擎里面.最新版本的Mycat不仅支持mysql,还可以支持MS SqlServer,Oracle,DB2等关系型数据库,而且还支持MongoDB这种NoSQL.Mycat对调用者屏蔽了后端存储具体实现. Mycat的原理是先拦截用户的SQL语句并做分

Mycat读写分离、主从切换学习(转)

http://blog.csdn.net/zhanglei_16/article/details/50707487 Mycat读写分离.主从切换学习问题一:分表.分库的优缺点,以及分表无法成为主流分表方式:是在将一个大表,在一个db库内,分成多个分表,优点是:分开之后的表,仍然在一个库内,便于查看.管理.缺点:db只能在一个服务器内,不能解决I/O问题,负载集中 分库方式:将一个大表,分布在多个DB中,每个DB只保留一部分数据,所有数据组合起来才是全库的数据.优点:优点是分担IO.负载均衡,可以

Amoeba实现Mysql读写分离部署文档

以下所有理解纯属个人理解,如若有误欢迎指出,不胜感激--o(∩_∩)o 两台服务器配置MYSQL主从复制实现数据高可用,这时读与写操作都有由master服务器来完成的,而从服务器只是复制了mster服务器的数据,这时可以利用一台服务器配置Amoeba实现mysql读写分离, master负责写,slave负责读取,当然 也可以有多个salve-- 从而减轻master服务器的压力,实现负载分摊: 拓扑图: Mysql主从复制原理: 两台mysql服务器一个作为master一个为slave:mas

web 项目 连接mycat 读写分离失效问题,

问题描述:mycat 读写分离已配好,在sql工具上查询操作是可以的,但是在项目中,读数据就走write 数据库, 解决      :环境spring +mvc +ibaites,在java中自己写jdbc连接是可以,读写分离,但是就是在业务程序中不能读写分离 之前是想是不是jdbc问题,换了几个jdbc连接池还是不行,最后各种查资料(没用网上根本没有这个), 最后各种方法试最后定位到事务的问题,因为代码命名不规范,方法被纳入到事务管理,因此造成读写数据都走write数据库 结论:    myc

实现MySQL读写分离 部署集群基础环境(有图)

实现MySQL读写分离 部署集群基础环境 1 实现MySQL读写分离1.1 问题 本案例要求配置2台MySQL服务器+1台代理服务器,实现MySQL代理的读写分离: 用户只需要访问MySQL代理服务器,而实际的SQL查询.写入操作交给后台的2台MySQL服务器来完成 其中Master服务器允许SQL查询.写入,Slave服务器只允许SQL查询 1.2 方案 使用4台RHEL 7.2虚拟机,如图-1所示.其中192.168.4.10.192.168.4.20分别作为MySQL主.从服务器,是整个服