mycat安装步骤

1、下载mycat安装包

     mycat安装包下载路径:http://www.mycat.io/

2、安装包目录结构介绍

   解压后的目录结构如下图所示:

     

目录说明见下表所示:

目录名称

说明

bin

存放window版本和linux版本,除了提供封装成服务的版本之外,也提供nowrapshell脚本命令,方便大家选择和修改。

Windows  运行:mycat.bat console在控制台启动程序,也可以装载成服务,若此程序运行有问题,也可以运行startup_nowrap.bat,确保java命令可以在命令执行。

Warp方式的命令,可以安装成服务并启动或停止。

        mycat install (可选)

        mycat start

注意,wrap方式的程序,其JVM配置参数在conf/wrap.conf中,可以修改为合适的参数,参数调整参照http://wrapper.tanukisoftware.com/doc/english/properties.html

conf

存放配置文件:

        server.xml:是Mycat服务器参数调整和用户授权的配置文件。

        schema.xml:是逻辑库定义和表以及分片定义的配置文件。

        rule.xml:是分片规则的配置文件,分片规则的具体一些参数信息单独存放为文件,也在这个目录下,配置文件修改,需要重启MyCAT或者通过9066端口reload

        wrapper.confJVM配置参数等设置。

        log4j.xml:日志存放在logs/mycat.log中,每天一个文件,日志的配置是在conf/log4j.xml中,根据自己的需要,可以调整输出级别为debugdebug级别下,会输出更多的信息,方便排查问题。

lib

MyCAT自身的jar包或依赖的jar包的存放目录。

logs

MyCAT日志的存放目录。日志存放在logs/mycat.log中,每天一个文件

2、mycat启动和停止

    进入mycat/bin目录

            安装mycat服务 :mycate install 

            启动mycat服务 :mycate start

            停止mycat服务 :mycate stop

    注意:当修改配置文件后,需要重启mycat服务

    修改conf/wrapper.conf文件中jdk路径和jvm参数

mycat安装步骤_第1张图片

3、创建数据库

         分别在服务器A、服务器B创建所用的分片数据库;

        CREATE database db1;

4、配置文件

    schema.xml配置文件,因为分库在不同的服务器,因此配置两个datahost;如果在一个datahost中配置多个writeHost,则为主从配置。type="global"时,为全局表,





    
        
        

        
        

        


        
        
            rule="mod-long" />
        
        
            rule="sharding-by-intfile" />
        
            rule="sharding-by-intfile">
                            parentKey="id">
                                    parentKey="id" />
            

                            parentKey="id" />
        

    

    
    
            writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
        select user()
                    password="123456">
        

    

            writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
        select user()
                    password="123456">
        

    

      server.xml配置文件,本实例很简单,就只定义user, 

      name:用户名

      password:密码

      schemas:实例名,和schema.xml定义的schema对应,这里的实例名是虚拟名,也就是对mycat服务的一种别名,是 应用程序以及客户端连接的入口。





    
    druidparser
     
    
    
        
        
        
        
        
        
        
    

    
        test
        TESTDB
    

  

 5、测试

全局表:company
mysql> create table company(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 company(id int not null primary key,name varchar(100),sharding_id int not null);
     +-----------+------------------------------------------------------------------------------------------------+
     | DATA_NODE | SQL                                                                                            |
     +-----------+------------------------------------------------------------------------------------------------+
     | dn1       | create table company(id int not null primary key,name varchar(100),sharding_id int not null) |
     | dn2       | create table company(id int not null primary key,name varchar(100),sharding_id int not null) |
     +-----------+------------------------------------------------------------------------------------------------+
     2 rows in set (0.04 sec)

mysql> insert into company(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 company(id,name,sharding_id) values(1,'leader us',10000);
       +-----------+-----------------------------------------------------------------------+
       | DATA_NODE | SQL                                                                   |
       +-----------+-----------------------------------------------------------------------+
      | dn1       | insert into company(id,name,sharding_id) values(1,'leader us',10000) |
      +-----------+-----------------------------------------------------------------------+
      1 row in set (0.00 sec)


水平分表:travelrecord

mysql> explain create table travelrecord(id int not null primary key,name varchar(100));
      +-----------+---------------------------------------------------------------------+
      | DATA_NODE | SQL                                                                 |
     +-----------+---------------------------------------------------------------------+
     | dn1       | create table travelrecord(id int not null primary key,name varchar(100)) |
     | dn2       | create table travelrecord(id int not null primary key,name varchar(100)) |
     | dn3       | create table travelrecord(id int not null primary key,name varchar(100)) |
     +-----------+---------------------------------------------------------------------+
     3 rows in set (0.01 sec)

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




你可能感兴趣的:(数据库)