MyCat简单搭建使用

什么是MYCAT


一个彻底开源的,面向企业应用开发的大数据库集群
支持事务、ACID、可以替代MySQL的加强版数据库
一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群
一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server
结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品
一个新颖的数据库中间件产品


特性


MyCAT应算是最好的中间件。它继承了阿里cobar的衣钵,在此基础上增加了众多重要功能。
gitHub地址:https://github.com/MyCATApache/Mycat-doc
其他地址:http://www.mycat.io/
其核心特性:
支持SQL92标准
支持MySQL、Oracle、DB2、SQL Server、PostgreSQL等DB的常见SQL语法
遵守Mysql原生协议,跨语言,跨平台,跨数据库的通用中间件代理。
基于心跳的自动故障切换,支持读写分离,支持MySQL主从,以及galera cluster集群。
支持Galera for MySQL集群,Percona Cluster或者MariaDB cluster
基于Nio实现,有效管理线程,解决高并发问题。
支持数据的多片自动路由与聚合,支持sum,count,max等常用的聚合函数,支持跨库分页。
支持单库内部任意join,支持跨库2表join,甚至基于caltlet的多表join。
支持通过全局表,ER关系的分片策略,实现了高效的多表join查询。
支持多租户方案。
支持分布式事务(弱xa)。
支持XA分布式事务(1.6.5)。
支持全局序列号,解决分布式下的主键生成问题。
分片规则丰富,插件化开发,易于扩展。
强大的web,命令行监控。
支持前端作为MySQL通用代理,后端JDBC方式支持Oracle、DB2、SQL Server 、 mongodb 、巨杉。
支持密码加密
支持服务降级
支持IP白名单
支持SQL黑名单、sql注入攻击拦截
支持prepare预编译指令(1.6)
支持非堆内存(Direct Memory)聚合计算(1.6)
支持PostgreSQL的native协议(1.6)
支持mysql和oracle存储过程,out参数、多结果集返回(1.6)
支持zookeeper协调主从切换、zk序列、配置zk化(1.6)
支持库内分表(1.6)
集群基于ZooKeeper管理,在线升级,扩容,智能优化,大数据处理(2.0开发版)


简单使用

1,下载MyCat压缩包,可以是各个平台的
http://www.mycat.org.cn/
2,下载安装jdk,因为MyCat是基于JAVA开发的
http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html
3,配置
将下载的MyCat压缩包压缩至指定目录,重点查看配置目录conf中的server.xml和schema.xml
server配置文件中我们可以查看到逻辑数据库配置信息,管理mycat的用户信息
schema文件可以查看数据库连接信息,连接逻辑数据库信息,
        writeType="0" dbType="mysql" dbDriver="native">
        select user()
        
                     password="XXX">
            
            
        

        
    

数据库分片节点信息:
   


schema信息:

        
        
        


如果是全局表,则每个db库都存一份数据
4,启动myca
直接运行bin目录下的startup_nowrap.bat 我这里是windows的
如果想安装服务,运行
F:\mycat\bin>mycat.bat install
wrapper  | Mycat-server installed.
5,操作
mycat登陆跟mysql类似,不过这里需要注意下端口,它的数据端口是8066,管理端口是9066
登陆方式:mysql -h 192.168.100.103 -ptest -ptest [-DTESTDB]
其中test test是逻辑用户名密码
管理端口:
mysql> show @@database;
+----------+
| DATABASE |
+----------+
| TESTDB   |
+----------+
1 row in set (0.00 sec)
数据端口可以
mysql> select database();
+------------+
| DATABASE() |
+------------+
| TESTDB     |
+------------+
1 row in set (0.00 sec)
创建表:create table goods(id int auto_increment not null primary key,val varchar(20));
解释:explain create table goods(id int auto_increment not null primary key,val varchar(20));
插入数据:insert into goods values(‘china’);
查询:
mysql> select * from db2.goods;
+----+-------+
| id | val   |
+----+-------+
|  1 | china |
+----+-------+

你可能感兴趣的:(HA)