#1.下载安装
下载后的文件:Mycat-server-1.6.7.5-release-20200410174409-linux.tar.gz
通过命令解压即可安装完成:
tar -zxvf Mycat-server-1.6.7.5-release-20200410174409-linux.tar.gz
#2.前期准备和配置需求
##2.1前期准备
准备好三台服务器,这三台服务器组成一个MySQL集群
主机IP | 安装配置MySQL5.7 | 安装配置MyCat |
---|---|---|
192.168.68.134 | 配置完成 | 需要 |
192.168.68.133 | 配置完成 | 无需 |
192.168.68.151 | 配置完成 | 无需 |
##2.2配置需求
需求:现在有一种WQL_TB表,它的数据量巨大,现在需要对它进行数据分片。数据分片分别位于三个数据节点,每一个数据节点主机位于不同的服务器上
#3.MyCat配置
##3.1配置schema.xml配置文件
schema.xml作为MyCat中重要的配置文件之一,管理着MyCat的逻辑库、逻辑表以及对应的分片规则、DataNode以及DataHost
属性 | 含义 |
---|---|
schema | 标签用于定义MyCat实例中的逻辑库 |
table | 标签定义了MyCat中的逻辑表 |
rule | rule用于指定分片规则,auto-sharding-long的分片规则是按ID值的范围进行分片。1~5000000为第一片,5000001-10000000为第二片…… 具体设置还要很多 |
dataNode | 标签定义了MyCat中的数据节点,也就是我们通常所说的数据分片 |
dataHost | 标签在MyCat逻辑库中作为最底层的标签存在,直接定义了具体的数据库实例、读写分离配置和心跳语句 |
配置:
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<!--逻辑库-->
<schema name="WQLDB" checkSQLschema="true" sqlMaxLimit="100">
<!--逻辑表-->
<table name="WQL_TB" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />
</schema>
<!--数据节点,绑定dataHost数据源和database数据库-->
<dataNode name="dn1" dataHost="localhost1" database="wqldb" />
<dataNode name="dn2" dataHost="localhost2" database="wqldb" />
<dataNode name="dn3" dataHost="localhost3" database="wqldb" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1" slaveThreshold="100">
<!--心跳检测-->
<heartbeat>select user()</heartbeat>
<!--writeHost数据写入节点,也就是数据源-->
<writeHost host="hostM1" url="jdbc:mysql://192.168.68.151:3306" user="root"
password="123456789">
</writeHost>
</dataHost>
<dataHost name="localhost2" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="jdbc:mysql://192.168.68.133:3306" user="root"
password="123456789">
</writeHost>
</dataHost>
<dataHost name="localhost3" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="jdbc:mysql://192.168.68.134:3306" user="root"
password="123456789">
</writeHost>
</dataHost>
</mycat:schema>
注:url的格式是jdbc:mysql://主机名:端口号,不然会报错无效地址
##3.2配置server.xml文件
server.xml几乎保存了所有mycat需要的系统配置信息,最常用的是此配置用户名、密码以及权限
注:在system中添加UTF-8字段设置,否则存储中文会出现问号
<property name="charset">utf8</property>
在配置server.xml时只需要配置两个用户即可① root管理员用户 ② 普通用户(只读)
<user name="root" defaultAccount="true">
<property name="password">123456789</property>
<property name="schemas">WQLDB</property>
</user>
<user name="user">
<property name="password">123456789</property>
<property name="schemas">WQLDB</property>
<property name="readOnly">true</property>
</user>
#4.分片测试
##4.1启动MyCat
在启动前需要做两个操作:
1. 测试本地数据库是否可以连接
2. 关闭防火墙
mycat系列命令:
1 启动:bin/mycat start
2 关闭:bin/mycat stop
3 重启:bin/mycat status
操作MyCat的步骤:
1. 启动MyCat
2. 通过连接命令连接Mycat(连接端口8066)
① 启动mycat:
- 控制台启动:./mycat console
- 后台启动:./mycat start
[root@rabbitmq1 bin]# ./mycat start
Starting Mycat-server...
[root@rabbitmq1 bin]# ./mycat status
Mycat-server is running (11727).
② 通过连接命令连接Mycat(在安装MyCat机器执行)
mysql -h 192.168.68.133 -P 8066 -u root -p
##4.2分片测试
1) 创建一张逻辑表WQL_TB
CREATE TABLE WQL_TB(
id INT NOT NULL,
name VARCHAR(25),
title TEXT,
PRIMARY KEY(id)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
注:在schema.xml中定义的逻辑表并没有表结构,需要在Mycat命令行中重新声明表结构
2) 插入数据到WQL_TB表
INSERT INTO WQL_TB(ID,`NAME`,TITLE) VALUES(1,"wql","mycat插入数据1");
INSERT INTO WQL_TB(ID,`NAME`,TITLE) VALUES(2,"fq","mycat插入数据2");
INSERT INTO WQL_TB(ID,`NAME`,TITLE) VALUES(3,"lala","mycat插入数据3");
3) 插入id为5000001的数据到WQL_TB表(切分规则)
INSERT INTO WQL_TB(ID,`NAME`,TITLE) VALUES(5000001,"lala","mycat插入数据4");
Comments | NOTHING
Warning: Undefined variable $return_smiles in /www/wwwroot/wql_luoqin_ltd/wp-content/themes/Sakura/functions.php on line 1109