`
1028826685
  • 浏览: 944773 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类

Mycat1.5安装、简单使用

 
阅读更多

MyCAT 可以视为“MySQL”集群的企业级数据库,用来替代昂贵的Oracle集群,其背后是阿里曾经开源的知名产品Cobar。MyCAT的目标是:低成本的将现有的单机数据库和应用平滑迁移到“云”端,解决数据存储和业务规模迅速增长情况下的数据瓶颈问题。

一、部署步骤详解 (先安装mysql)

  (1) 用命令行工具或图形化客户端,连接MYSQL,创建DEMO所用三个分片数据库;
 CREATE database db1;
 CREATE database db2;
 CREATE database db3;

  (2) 修改my.inf新增以下语句,my.inf 一般会放在/etc/my.cnf 或 /etc/mysql/my.cnf,设置为Mysql大小写不敏感,否则可能会发生表找不到的问题。
 lower_case_table_names = 1

  (3) 解压Mycat-server-1.3.0.2-20150105144205-linux.tar.gz 到/usr/local/mycat

  (4) 解压jdk-7u65-linux-i586.gz,配置环境变量

  (5) 创建mycat 用户,改变目录权限为mycat
 useradd mycat
 chown -R mycat.mycat /usr/local/mycat

  (7) 修改用户密码
 passwd mycat
 输入:

  (8) 修改/usr/local/conf/schema.xml,URL、用户名、密码修改,其余不变
 <writeHost host="hostM1" url="10.1.176.104:3306" user="root"
                        password="www.com.workssys">

二、运行步骤详解

  (1) 进入 /usr/local/mycat/bin (默认数据端口为8066,管理端口为9066) 执行./mycat start

  (2) 进入logs目录,查看日志,如果wrapper.log 报错 java.net.BindException: Address already in use 杀掉正在执行的相关java进程
 ps -ef|grep java
 kill -9 xxx

三、使用步骤详解
  (1) 进入mysql bin目录/usr/local/mysql/bin/

  (2) 登录mysql 执行以下命令  注意:需要在安装mysql服务端执行mysql命令,使用navicat等工具分片可能出现问题
  mysql -utest -ptest -h10.1.176.104 -P8066 -DTESTDB
 (mycat的用户账号和授权信息是在conf/server.xml文件中配置)

  (3) 表创建测试:
 mysql> create table employee (id int not null primary key,name varchar(100),sharding_id int not null);
 Query OK, 0 rows affected (0.30 sec)

 mysql> explain create table employee (id int not null primary key,name varchar(100),sharding_id int not null);
 +-----------+------------------------------------------------------------------------------------------------+
 | DATA_NODE | SQL                                                                                            |
 +-----------+------------------------------------------------------------------------------------------------+
 | dn1       | create table employee (id int not null primary key,name varchar(100),sharding_id int not null) | 
 | dn2       | create table employee (id int not null primary key,name varchar(100),sharding_id int not null) | 
 +-----------+------------------------------------------------------------------------------------------------+
 2 rows in set (0.04 sec)


  (4) 客户端软件使用:navicat

 创建mycat新连接:ip:10.1.176.104,用户名:test,密码:test,端口:8066
 可看到TESTDB数据库下已创建表:employee

 打开db1,db2 数据库也可看到已创建表employee

  (5) 插入数据测试
 mysql> insert into employee(id,name,sharding_id) values(1,'leader us',10000);
 ERROR 2006 (HY000): MySQL server has gone away
 No connection. Trying to reconnect...
 Connection id:    6
 Current database: TESTDB

 Query OK, 1 row affected (0.03 sec)

 mysql> explain insert into employee(id,name,sharding_id) values(1,'leader us',10000);
 +-----------+-----------------------------------------------------------------------+
 | DATA_NODE | SQL                                                                   |
 +-----------+-----------------------------------------------------------------------+
 | dn1       | insert into employee(id,name,sharding_id) values(1,'leader us',10000) | 
 +-----------+-----------------------------------------------------------------------+
 1 row in set (0.00 sec)
 
  (6) 根据规则auto-sharding-long(主键范围)进行分片测试
 mysql> explain create table company(id int not null primary key,name varchar(100));
 +-----------+---------------------------------------------------------------------+
 | DATA_NODE | SQL                                                                 |
 +-----------+---------------------------------------------------------------------+
 | dn1       | create table company(id int not null primary key,name varchar(100)) | 
 | dn2       | create table company(id int not null primary key,name varchar(100)) | 
 | dn3       | create table company(id int not null primary key,name varchar(100)) | 
 +-----------+---------------------------------------------------------------------+
 3 rows in set (0.01 sec)

  (7) 三个分片上都插入了3条数据
 mysql> explain insert into company(id,name) values(1,'hp');
 +-----------+---------------------------------------------+
 | DATA_NODE | SQL                                         |
 +-----------+---------------------------------------------+
 | dn1       | insert into company(id,name) values(1,'hp') | 
 | dn2       | insert into company(id,name) values(1,'hp') | 
 | dn3       | insert into company(id,name) values(1,'hp') | 
 +-----------+---------------------------------------------+
 3 rows in set (0.00 sec)

  (8) 确认是分片存储
 
 mysql> select * from employee;
 +----+-----------+-------------+
 | id | name      | sharding_id |
 +----+-----------+-------------+
 |  2 | me        |       10010 | 
 |  4 | mydog     |       10010 | 
 |  1 | leader us |       10000 | 
 |  3 | mycat     |       10000 | 
 +----+-----------+-------------+
 4 rows in set (0.01 sec)

 mysql> explain select * from employee;
 +-----------+----------------------------------+
 | DATA_NODE | SQL                              |
 +-----------+----------------------------------+
 | dn1       | SELECT * FROM employee LIMIT 100 | 
 | dn2       | SELECT * FROM employee LIMIT 100 | 
 +-----------+----------------------------------+
 2 rows in set (0.00 sec)

分享到:
评论

相关推荐

    Mycat从入门到精通之Mycat架构+Catlet分析.pptx

    #### 一、Mycat 1.5系列架构概述 Mycat作为一个开源的分布式数据库中间件,旨在为用户提供简单易用的数据库访问层,能够有效地解决单个数据库性能瓶颈的问题。Mycat 1.5系列作为其一个重要的版本,对整个系统的架构...

    Mycat从入门到精通之Mycat项目开发、编译与运行.pptx

    对于新手来说,最简单的编译与运行方式是从官网下载源码包并进行安装。而对于希望深入了解Mycat内部机制的用户,可以通过修改源代码来定制自己的Mycat版本。Mycat使用Maven作为构建工具,通过编辑`pom.xml`文件,并...

    MyCat配置方案1

    MyCat的核心功能是将复杂的分布式数据库操作隐藏在简单易用的接口后面,使得开发者无需关心底层的分布式细节,从而降低了开发和维护的复杂度。这种设计使得MyCat成为企业级大数据处理和分布式数据库解决方案的理想...

    黑马品优购项目

    数据库:mysql,使用mycat读写分离 开发模式:SOA 服务中间件:dubbox,需要和zookeeper配合使用 注册中心:zookeeper 消息中间件:Activemq,使用spring-jms 负载均衡:nginx 搜索:solr集群(solrCloud),配合...

    Java高级架构必备知识点

    - **Zookeeper安装部署及命令分析**:熟悉Zookeeper的基本使用。 - **Zookeeper实现原理分析**:深入理解Zookeeper的工作原理。 - **Dubbo的使用入门及配置分析**:掌握Dubbo的基本使用方法。 **7.6 分布式专题-...

Global site tag (gtag.js) - Google Analytics