Redis 官网集群步骤

一、环境介绍

1. mysql 节点1环境

  • 操作系统: centos x64
  • 数据库名: lujw_mycat_db_53_1
  • hostname: c1
  • ip: 192.168.171.53

2. mysql 节点2环境

  • 操作系统: centos x64
  • 数据库名: lujw_mycat_db_54_1
  • hostname: c2
  • ip: 192.168.171.54

3. mycat 环境

安装在个人电脑 MacBook 上
版本:1.6 release

4. 前提条件

安装好 mycat,两个节点安装好 mysql

二、配置 mycat

1. 配置 schema.xml

根据个人情况修改 url,user,password





    
        
select user() select user()

2. 配置 server.xml

在尾部添加一个访问数据库的用户,具体看个人用户设置
格式如下



        cat
        TESTDB

3. 创建数据库

分别在两个节点上使用 mysql 创建 lujw_mycat_db 数据库

三、启动 mycat

使用 mycat start 指令尝试运行 mycat,会发现在 logs 目录下的输出日志 wrapper.log 中出现错误,这是因为 mycat 默认的 schema.xml 配置了三个节点,相应的 rule.xml 中的规则也设置了三个节点。我们可以根据日志中的提示找到相应的 rule,然后进行修改。例如

Caused by: io.mycat.config.util.ConfigException: Illegal table conf : table [ TRAVELRECORD ] rule function [ rang-long ] partition size : 3 > table datanode size : 2, please make sure table datanode size = function partition size

打开 rule.xml 找到上述 rang-long 的规则


        autopartition-long.txt

再打开属性文件 autopartition-long.txt

# range start-end ,data node index
# K=1000,M=10000.
0-500M=0
500M-1000M=1
1000M-1500M=2

修改为两个节点的配置

# range start-end ,data node index
# K=1000,M=10000.
0-500M=0
500M-1500M=1
# 1000M-1500M=2

根据日志所有的提示,我们还需要修改的规则有
mod-long: count 3 --> 2


        
        2

再次启动 mycat,在 wrapper.log 和 mycat.log 中会得到启动成功的信息

四、测试

在 mycat.log 日志中搜索 serverport,可以看到 serverport=8066,使用 mysql 连接这个端口,可以查到根据我们配置好的信息创建的数据库和表

./mysql -u root -p123456 -P8066 -h127.0.0.1

mysql> show databases;
+----------+
| DATABASE |
+----------+
| TESTDB   |
+----------+
1 row in set (0.01 sec)

mysql> show tables;
+------------------+
| Tables in TESTDB |
+------------------+
| company          |
| employee         |
| goods            |
| hotnews          |
| travelrecord     |
+------------------+
5 rows in set (0.00 sec)

虽然查到了 tables,但其实那些都是空的,所以还需要我们手动创建一次,这里以 employee 为例

create table employee (id int not null primary key,name varchar(100),sharding_id int not null);

然后插入数据

insert into employee(id,name,sharding_id) values(1,'leader us',10000);
insert into employee(id,name,sharding_id) values(2, 'me',10010);
insert into employee(id,name,sharding_id) values(3, 'mycat',10000);
insert into employee(id,name,sharding_id) values(4, 'mydog',10010);

分别到两个节点中的数据库查看,可以看到在数据库1中有:
1 leader us 10000
3 mycat 10000
数据库2中有:
2 me 10010
4 mydog 10010

这说明分片成功了

你可能感兴趣的:(Redis 官网集群步骤)