MyCat安装和部署

MyCat简介

MyCat是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他数据库里。
MyCat发展到目前的版本,已经不是一个单纯的MySQL代理了,它的后端可以支持MySQL、SQL Server、Oracle、DB2、PostgreSQL等主流数据库,也支持MongoDB这种新型NoSQL方式的存储,未来还会支持更多类型的存储。而在最终用户看来,无论是那种存储方式,在MyCat里,都是一个传统的数据库表,支持标准的SQL语句进行数据的操作,这样一来,对前端业务系统来说,可以大幅降低开发难度,提升开发速度


  • 对于DBA来说,可以这么理解Mycat
    Mycat就是MySQL Server,而Mycat后面连接的MySQL Server,就好象是MySQL的存储引擎,如
    InnoDB,MyISAM等,因此,Mycat本身并不存储数据,数据是在后端的MySQL上存储的,因此数据可靠性
    以及事务等都是MySQL保证的,简单的说,Mycat就是MySQL最佳伴侣,它在一定程度上让MySQL拥有了
    能跟Oracle PK的能力。
  • 对于软件工程师来说,可以这么理解Mycat
    Mycat就是一个近似等于MySQL的数据库服务器,你可以用连接MySQL的方式去连接Mycat(除了端
    口不同,默认的Mycat 端口是8066 而非MySQL 的3306,因此需要在连接字符串上增加端口信息),大多数
    情况下,可以用你熟悉的对象映射框架使用Mycat,但建议对于分片表,尽量使用基础的 SQL语句,因为这样能
    达到最佳性能,特别是几千万甚至几百亿条记录的情况下。
  • 对于架构师来说,可以这么理解Mycat
    Mycat是一个强大的数据库中间件,不仅仅可以用作读写分离、以及分表分库、容灾备份,而且可以用于多
    租户应用开发、云平台基础设施、让你的架构具备很强的适应性和灵活性,借助于即将发布的 Mycat智能优化模
    块,系统的数据访问瓶颈和热点一目了然,根据这些统计分析数据,你可以自动或手工调整后端存储,将不同的
    表映射到不同存储引擎上,而整个应用的代码一行也不用改变

MyCat安装

  • 安装JDK(1.7以上及更高)
  • 安装Mysql,如果有就不需要装了
  • 从官网下载MyCat安装包 MyCat
  • 下载好的安装包放到Linux服务器上,并在usr/local目录下解压
  • 解压完成代表安装完成,程序在usr/local/mycat目录中

MyCat配置

MyCAT目前主要通过配置文件的方式来定义逻辑库和相关配置:

  • /conf/schema.xml 中定义逻辑库,表、分片节点等内容.
  • /conf/rule.xml 中定义分片规则.
  • /conf/server.xml 中定义用户以及系统相关变量,如端口等.

安装完成后可以打开这三个文件进行查看,里面都是解释和需要怎么配置。

schema.xml

  • "schema"所有数据库分片节点,每个数据库分片是一个schema
  • table标签的Name属性所有数据表节点,其中包含它的主键(primaryKey)、规则(rule)、逻辑表的类型(type)
	<!--分库不分表,有两个数据节点分别为:developExam、developAuth-->
	<schema name="developmentExam" dataNode="developExam" checkSQLschema="false" sqlMaxLimit="100"/>
	<schema name="developmentAuth" dataNode="developAuth" checkSQLschema="false" sqlMaxLimit="100"/>
	
	<!--分库分表,有个数据节点分别为:developExam,其中配置两个表-->
	<schema name="developmentExam" checkSQLschema="false" sqlMaxLimit="100">
		<table name="travelrecord" dataNode="developExam,developAuth" rule="auto-sharding-long" />
		<table name="hotnews" primaryKey="ID" autoIncrement="true" dataNode="developExam"
			   rule="mod-long" />
	</schema>
	<!--根据自己需求添加相应配置-->
  • dataNode 标签定义了 MyCat中的数据节点,也就是我们通常说所的数据分片。
	<!--每个数据节点对应一个数据库-->
	<dataNode name="developExam" dataHost="exam" database="itoo_exam2_dev" />
	<dataNode name="developAuth" dataHost="auth" database="itoo_cloud_dev" />
  • dataHost标签定义了具体的数据库实例、读写分离配置和心跳语句
	<!--每个数据库连接具体实例-->
	<dataHost name="exam" maxCon="1000" minCon="10" balance="0"
			  writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
		<heartbeat>select user()</heartbeat>
		<!-- can have multi write hosts -->
		<writeHost host="hostM1" url="数据库IP:3306" user="账号"
				   password="密码">
	</writeHost>

server.xml

  • 插入图片 Ctrl + G
	<!--MyCat账号密码、分库配置、访问权限-->
	<user name="user">
		<property name="password">user</property>
		<property name="schemas">developmentExam,developmentAuth</property>
		<property name="readOnly">true</property>
	</user>

注意:需要手动上创建数据库,如果连接不到数据库或配置失败则启动mycat服务器报错:无法链接到数据库。

以下命令在MyCat的/bin目录下操作

  • 启动MyCat ./mycat start
  • 查看MyCat状态 ./mycat status
  • 查看MyCat日志 ./mycat console 如果启动失败可以执行这个命令看错误信息

小编也在网上看了很多关于MyCat的文章,里面说的99%都是来自这本书里的内容,它里面介绍非常详细,有时间的小伙伴可以看一下。 —— [ Mycat权威指南 ]

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值