CentOS安装mycat+mysql5.6 完成数据库分片
2018-01-16 13:54
357 查看
注:首先安装mysql5.6 (本文中的mysql一定要安装mysql5.6)
参考我的博客:http://blog.csdn.net/a639735331/article/details/79073783
mycat 下载地址:
链接:https://pan.baidu.com/s/1cYLkGu 密码:gbh0
停止命令:./mycat stop
重启命令:./mycat restart
注意:可以使用mysql的客户端直接连接mycat服务。默认服务端口为8066 需要结合下文中 配置用户名和密码
出现以上信息说明启动成功否则查看日志
cat root/mycat/logs/wrapper.log
出现以下错误
错误: 代理抛出异常错误: java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: bogon: bogon: 域名解析暂时失败
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.40.116 bogon再次启动
6.mycat分片
MyCAT支持水平分片与垂直分片:
水平分片:一个表格的数据分割到多个节点上,按照行分隔。
垂直分片:一个数据库中多个表格A,B,C,A存储到节点1上,B存储到节点2上,C存储到节点3上。
MyCAT通过定义表的分片规则来实现分片,每个表格可以捆绑一个分片规则,每个分片规则指定一个分片字段并绑定一个函数,来实现动态分片算法。
1、Schema:逻辑库,与MySQL中的Database(数据库)对应,一个逻辑库中定义了所包括的Table。
2、Table:表,即物理数据库中存储的某一张表,与传统数据库不同,这里的表格需要声明其所存储的逻辑数据节点DataNode。在此可以指定表的分片规则。
3、DataNode:MyCAT的逻辑数据节点,是存放table的具体物理节点,也称之为分片节点,通过DataSource来关联到后端某个具体数据库上
4、DataSource:定义某个物理库的访问地址,用于捆绑到Datanode上
8.修改mycat配置文件
1、Schema.xml作为MyCat中重要的配置文件之一,管理着MyCat的逻辑库、表、分片规则、DataNode以及DataSource。弄懂这些配置,是正确使用MyCat的前提。这里就一层层对该文件进行解析。schema
标签用于定义MyCat实例中的逻辑库Table 标签定义了MyCat中的逻辑表dataNode 标签定义了MyCat中的数据节点,也就是我们通常说所的数据分片。dataHost标签在mycat逻辑库中也是作为最底层的标签存在,直接定义了具体的数据库实例、读写分离配置和心跳语句。注意:若是LINUX版本的MYSQL,则需要设置为Mysql大小写不敏感,否则可能会发生表找不到的问题。在MySQL的配置文件中my.ini
[mysqld] 中增加一行 lower_case_table_names = 1文件路径:/root/mycat/conf/schema.xml
2、server.xml几乎保存了所有mycat需要的系统配置信息。最常用的是在此配置用户名、密码及权限。
文件路径:/root/mycat/conf/server.xml
3、rule.xml里面就定义了我们对表进行拆分所涉及到的规则定义。我们可以灵活的对表使用不同的分片算法,或者对表使用相同的算法但具体的参数不同。这个文件里面主要有tableRule和function这两个标签。在具体使用过程中可以按照需求添加tableRule
和function。
此配置文件可以不用修改,使用默认即可。
create table TB_ITEM(
id bigint primary key,
title varchar(32)
)
INSERT INTO TB_ITEM(ID,TITLE) VALUES(1,'22');
INSERT INTO TB_ITEM(ID,TITLE) VALUES(5000000,'22');
这2条数据进入了db1数据库
INSERT INTO TB_ITEM(ID,TITLE) VALUES(5000001,'22');
这条数据进入了db2数据库
由于配置的分片规则为“auto-sharding-long”,所以mycat会根据此规则自动分片。
每个datanode中保存一定数量的数据。根据id进行分片
经测试id范围为:
Datanode1:1~5000000
Datanode2:5000000~10000000
当10000001以上的id插入时报错:
[Err] 1064 - can't find any valid datanode:TB_ITEM -> ID -> 10000001
此时需要添加节点了。
参考我的博客:http://blog.csdn.net/a639735331/article/details/79073783
mycat 下载地址:
链接:https://pan.baidu.com/s/1cYLkGu 密码:gbh0
1.:把MyCat的压缩包上传到linux服务器
2.:解压缩,得到mycat目录
3.:进入mycat/bin,启动MyCat
启动命令:./mycat start停止命令:./mycat stop
重启命令:./mycat restart
注意:可以使用mysql的客户端直接连接mycat服务。默认服务端口为8066 需要结合下文中 配置用户名和密码
4.检测mycat是否启动成功
ps aux|grep mycat出现以上信息说明启动成功否则查看日志
cat root/mycat/logs/wrapper.log
出现以下错误
错误: 代理抛出异常错误: java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: bogon: bogon: 域名解析暂时失败
5.则需要在/etc/hosts 添加 主机名字映射到IP地址的方法
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.40.116 bogon再次启动
MyCAT支持水平分片与垂直分片:
水平分片:一个表格的数据分割到多个节点上,按照行分隔。
垂直分片:一个数据库中多个表格A,B,C,A存储到节点1上,B存储到节点2上,C存储到节点3上。
MyCAT通过定义表的分片规则来实现分片,每个表格可以捆绑一个分片规则,每个分片规则指定一个分片字段并绑定一个函数,来实现动态分片算法。
1、Schema:逻辑库,与MySQL中的Database(数据库)对应,一个逻辑库中定义了所包括的Table。
2、Table:表,即物理数据库中存储的某一张表,与传统数据库不同,这里的表格需要声明其所存储的逻辑数据节点DataNode。在此可以指定表的分片规则。
3、DataNode:MyCAT的逻辑数据节点,是存放table的具体物理节点,也称之为分片节点,通过DataSource来关联到后端某个具体数据库上
4、DataSource:定义某个物理库的访问地址,用于捆绑到Datanode上
7.环境准备
在一个mysql服务器中建立2个数据库 db1 db3 分别代表2个数据节点8.修改mycat配置文件
1、Schema.xml作为MyCat中重要的配置文件之一,管理着MyCat的逻辑库、表、分片规则、DataNode以及DataSource。弄懂这些配置,是正确使用MyCat的前提。这里就一层层对该文件进行解析。schema
标签用于定义MyCat实例中的逻辑库Table 标签定义了MyCat中的逻辑表dataNode 标签定义了MyCat中的数据节点,也就是我们通常说所的数据分片。dataHost标签在mycat逻辑库中也是作为最底层的标签存在,直接定义了具体的数据库实例、读写分离配置和心跳语句。注意:若是LINUX版本的MYSQL,则需要设置为Mysql大小写不敏感,否则可能会发生表找不到的问题。在MySQL的配置文件中my.ini
[mysqld] 中增加一行 lower_case_table_names = 1文件路径:/root/mycat/conf/schema.xml
2、server.xml几乎保存了所有mycat需要的系统配置信息。最常用的是在此配置用户名、密码及权限。
文件路径:/root/mycat/conf/server.xml
3、rule.xml里面就定义了我们对表进行拆分所涉及到的规则定义。我们可以灵活的对表使用不同的分片算法,或者对表使用相同的算法但具体的参数不同。这个文件里面主要有tableRule和function这两个标签。在具体使用过程中可以按照需求添加tableRule
和function。
此配置文件可以不用修改,使用默认即可。
9.测试分片
配置完毕后,重新启动mycat。使用mysql客户端连接mycat,创建表。create table TB_ITEM(
id bigint primary key,
title varchar(32)
)
INSERT INTO TB_ITEM(ID,TITLE) VALUES(1,'22');
INSERT INTO TB_ITEM(ID,TITLE) VALUES(5000000,'22');
这2条数据进入了db1数据库
INSERT INTO TB_ITEM(ID,TITLE) VALUES(5000001,'22');
这条数据进入了db2数据库
由于配置的分片规则为“auto-sharding-long”,所以mycat会根据此规则自动分片。
每个datanode中保存一定数量的数据。根据id进行分片
经测试id范围为:
Datanode1:1~5000000
Datanode2:5000000~10000000
当10000001以上的id插入时报错:
[Err] 1064 - can't find any valid datanode:TB_ITEM -> ID -> 10000001
此时需要添加节点了。
相关文章推荐
- CentOS6.5 Linux安装mysql5.6数据库 针对64位系统
- 170425、centos安装mysql5.6数据库
- CentOS 6.5系统安装配置MySQL 5.6数据库
- 解决centos下安装mysql5.6找不到my.conf与数据库表大小写识别问题
- Centos6.6上安装mysql5.6中的一些典型问题
- centos 5.8 64位系统安装 mysql5.6
- CentOS 6.4上面安装MySQL 5.6社区版
- Centos 6.9 中 安装 mysql 数据库
- CentOS MySql5.6编译安装
- Centos5.6 x86下部署安装DRBD+Heartbeat+MySQL
- Ubuntu 安装 Mysql 5.6 数据库
- centos6.5 安装mysql5.6
- Linux Centos6.5 安装 MySQL 5.6
- Centos6.4下tar包安装最新版Mysql5.6
- 分布式架构学习之:033--MySQL源码编译安装(CentOS-6.7+MySQL-5.6)
- CentOS6.5二进制包安装MySQL5.6
- centos 7 安装 MySQL 5.6
- CentOS 6.5 源码安装 mysql 5.6
- Centos5.6 x86下部署安装DRBD+Heartbeat+MySQL
- CentOS 6.8 源码安装mysql 5.6