Mycatの実践1:初期Mycat


Mycat
Mycatの概要
1.        ,               
2.     、ACID、    MySQL       
3.       MySQL         ,       Oracle  
4.           、NoSQL  、HDFS      SQL Server
5.                              
6.              

現在の最新バージョン
1.6

長期計画2.0
1.          ,        。
2.   Mycat web(eye)       ,     ,    。
3.   mysql     ,           ,        ,      。
4.     zookeeper      Mycat     。
5.   Mycat Balance       Haproxy,LVS       ,     Mycat          。
6.   Spark      ,                 。
7.   Mycat    ,      ,         ,    ,           。

まとめ
Mycat           ,       MySQL、Oracle、DB2、SQL Server、PostgreSQL   ,                ,           .

シンプルな初期導入
                   (mycat-db1,mycat-db2,mycat-db3)  mycat   ,    mycat  

の準備を
# win   、      linux  

1. JDK
2. Mysql
3. mycat1.6 win   

JDKインストール
# wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-windows-x64.exe
  next  

#   JDK   
JAVA_HOME:C:\Program Files\Java\jdk1.8.0_162
CLASSPATH:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
PATH:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

# DEBUG
java -version

mysql
         
       mysql5.6  

3つのライブラリを初期化
#         mysql   (  mycat)
# mysql -uroot -p
CREATE DATABASE IF NOT EXISTS mycat-db1 DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE DATABASE IF NOT EXISTS mycat-db2 DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE DATABASE IF NOT EXISTS mycat-db3 DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;

#          travelrecord
CREATE TABLE `travelrecord` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(22) NOT NULL DEFAULT '',
  `time` int(10) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

#     
INSERT INTO `mycat-db1`.`travelrecord` (`name`, `time`) VALUES ('qkl', '0');
INSERT INTO `mycat-db1`.`travelrecord` (`name`, `time`) VALUES ('andy', '0');
INSERT INTO `mycat-db2`.`travelrecord` (`name`, `time`) VALUES ('zgq', '0');
INSERT INTO `mycat-db3`.`travelrecord` (`name`, `time`) VALUES ('pcb', '0');

mycat conf/server.xml構成



    
    0  
    0  

        2
       
         
    
    
        
        0
        
        
        
        
        
        
        
        
        0
        
            
        1

        
        1m

        
        1k

        0

        
        384m


        
        true


    

    
    
        123456
        TESTDB
        
        
        
    

    
        user
        TESTDB
        true
    



mycat conf/schema.xml構成




    
        select user()
        
        
        
    

    
        
    
    
 
 

bin/startup_nowrap.bat

#         
# MyCAT Server startup successfully. see logs in logs/mycat.log

クライアントテスト
クライアント
      navicat  
# mysql -uroot -p123456 -p 9066
      :root/123456 -> server.xml    

show @@help;
show @@sysparam;

クライアント
      navicat  
# mysql -uroot -p123456 -p 8066
      :root/123456 -> server.xml    

use TESTDB;

# select
select * from travelrecord;

# output:
+----+------+------+
| id | name | time |
+----+------+------+
|  1 | qkl  |    0 |
|  2 | andy |    0 |
|  1 | pcb  |    0 |
|  1 | zgq  |    0 |
+----+------+------+
4 rows in set

# update
update travelrecord set name='andy2' where id = 2;

# insert
insert into travelrecord(name, time) values('tony', 0);
#   
#[Err] 1064 - bad insert sql (sharding column:ID not provided,INSERT INTO travelrecord (name, time)
VALUES ('test', 0) 

まとめ
    mycat      mysql              ,                       

        Mycat          mycat     


けて む:Mycatの 2:グローバルシーケンス