一、MyCat介绍
1、什么是MyCat?
简单的说,MyCat就是:
一个彻底开源的,面向企业应用开发的“大数据库集群”
支持事务、ACID、可以替代Mysql的加强版数据库
一个可以视为“Mysql”集群的企业级数据库,用来替代昂贵的Oracle集群
一个融合内存缓存技术、Nosql技术、HDFS大数据的新型SQL Server
结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品
一个新颖的数据库中间件产品
MyCat的目标是:
低成本的将现有的单机数据库和应用平滑迁移到“云”端,解决数据存储和业务规模迅速增长情况下的数据瓶颈问题。
2、MyCat的关键特性
支持 SQL 92标准
支持Mysql集群,可以作为Proxy使用
支持JDBC连接ORACLE、DB2、SQL Server,将其模拟为MySQL Server使用
支持galera for mysql集群,percona-cluster或者mariadb cluster,提供高可用性数据分片集群
自动故障切换,高可用性
支持读写分离,支持Mysql双主多从,以及一主多从的模式
支持全局表,数据自动分片到多个节点,用于高效表关联查询
支持独有的基于E-R 关系的分片策略,实现了高效的表关联查询
多平台支持,部署和实施简单
3、MyCat架构
如图所示:MyCat使用Mysql的通讯协议模拟成了一个Mysql服务器,并建立了完整的Schema(数据库)、Table (数据表)、User(用户)的逻辑模型,并将这套逻辑模型映射到后端的存储节点DataNode(MySQL Instance)上的真实物理库中,这样一来,所有能使用Mysql的客户端以及编程语言都能将MyCat当成是Mysql Server来使用,不必开发新的客户端协议。
MyCat对多数据库的支持:
4、下载MyCat
官方网站:http://www.MyCat.org.cn/
github地址:https://github.com/MyCatApache
二、MyCat的使用
1、环境准备
(1)、数据库准备
准备三个MySQL数据库。在Linux上安装一个MySQL数据库进行模拟,在设置三个数据库,作为集群中的库进行使用。
(2)、上传数据库到linux服务器
(3)、使用rpm命令查看之前安装的MySQL,并卸载
[root@localhost mysql]# rpm -qa | grep mysql
[root@localhost mysql]# rpm -e mysql-libs-5.1.73-3.el6_5.x86_64 --nodeps
(4)、安装MySQL服务端
[root@localhost mysql]# rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm
(5)、启动mysql服务
[root@itcast-01 mysql]# service mysql start
(5)、安装MySQL客户端
[root@itcast-01 mysql]# rpm -ivh MySQL-client-5.6.22-1.el6.i686.rpm
(6)、去 /root/.mysql_secret文件中查看mysql安装密码
(7)、使用密码登录,并进行密码修改
(8)、设置远程访问的权限
mysql> grant all privileges on *.* to 'root' @'%' identified by 'root';
mysql> grant all privileges on *.* to root@'localhost';
mysql> flush privileges;
2、MyCat安装
(1)、上传MyCat服务压缩包到linux中
(2)、解压MyCat安装包
(3)、配置server.xml
(4)、配置schema.xml
(未完待续的配置。。。)
(5)、配置rule.xml
(6)、配置linux主机名对应的ip
3、启动MyCat
4、MyCat测试