加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

MySQL+MyCat分库分表 读写分离配置

发布时间:2019-05-17 06:11:22 所属栏目:编程 来源:马士兵说吧
导读:一、 MySQL+MyCat分库分表1 MyCat简介 java编写的数据库中间件 Mycat运行情形必要JDK。 Mycat是中间件,运行在代码应用和MySQL数据库之间的应用。 前身: corba,是阿里开拓的数据库中间件,实现MySQL数据库分库分表集群打点的中间件,曾经呈现过重大事情
副问题[/!--empirenews.page--]

一、 MySQL+MyCat分库分表 1 MyCat简介

java编写的数据库中间件

Mycat运行情形必要JDK。

Mycat是中间件,运行在代码应用和MySQL数据库之间的应用。

前身: corba,是阿里开拓的数据库中间件,实现MySQL数据库分库分表集群打点的中间件,曾经呈现过重大事情,二次开拓,形成Mycat。

行使MyCat之后,编写的全部的SQL语句,必需严酷遵守SQL尺度类型。

  1. insert into table_name(column_name) values(column_value); 

行使MyCat中间件后的布局图如下:

MySQL+MyCat分库分表 读写疏散设置

2 MyCat术语简介 2.1 切分

逻辑上的切分. 在物理层面,是行使多库[database],多表[table]实现的切分.

2.1.1 纵向切分

把一个数据库切分成多个数据库,设置利便

只能实现两张表的表毗连查询.

将一张表中的数据,分手到多少个database的同布局表中。多个表的数据的荟萃是当前表格的数据。

MySQL+MyCat分库分表 读写疏散设置

2.1.2 横向切分

把一个表切分成多个表,对比纵向切分派置贫困

无法实现表毗连查询.

将一张表的字段,分手到多少张表中,将多少表毗连到一路,才是当前表的完备数据。

MySQL+MyCat分库分表 读写疏散设置

2.2 逻辑库

Mycat中界说的database.是逻辑上存在的.可是物理上未必存在.

首要是针对纵向切分提供的观念.

会见MyCat,就是将MyCat当做MySQL行使。

Db数据库是MyCat中界说的database。通过SQL会见MyCat中的db库的时辰,对应的是MySQL中的db1,db2,db3三个库。物理上的database是db1,db2,db3.逻辑上的database就是db。

MySQL+MyCat分库分表 读写疏散设置

2.3 逻辑表

Mycat中界说的table.是逻辑上存在,物理上未必存在.

首要是针对横向切分提供的观念

MyCat中的表格table,其字段分手到MySQL数据库的表格table1,table2,table3中。

MySQL+MyCat分库分表 读写疏散设置

2.4 默认端口

Mycat默认端口是8066

2.5 数据主机 - dataHost

物理MySQL存放的主机地点.可以行使主机名,IP,域名界说.

2.6 数据节点 - dataNode

物理的database是什么.数据生涯的物理节点.就是database.

2.7 分片法则

当节制数据的时辰,怎样会见物理database和table.

就是会见dataHost和dataNode的算法.

在Mycat处理赏罚详细的数据CRUD的时辰,怎样会见dataHost和dataNode的算法.如:哈希算法,crc16算法等.

3 Mycat搭建 3.1 安装JDK

3.2 主从备份搭建完成 3.3 安装mycat

解压缩: tar -zxf mycat-xxxx.tar.gz

3.4 Master提供可被Mycat会见的用户

在Mycat中通过Master数据库的root用户会见Master数据库.

  1. grant all privileges on *.* to ‘username’@’ip’ identified by ‘password’ with grant option;  
  2. grant all privileges on *.* to 'mycat'@'%' identified by 'mycat' with grant option; 
3.5 上传mycat
  1. Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz 
3.6 解压缩
  1. tar -zxf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz 
3.7 Mycat设置文件详解

Mycat全部的设置文件,都在应用的conf目次中.

3.7.1 rule.xml

用于界说分片法则的设置文件.

首要是查察.很少修改.

mycat默认的分片法则: 以500万为单元,实现分片法则.

逻辑库A对应dataNode - db1和db2. 1-500万生涯在db1中, 500万零1到1000万生涯在db2中,1000万零1到1500万生涯在db1中.依次类推.

MySQL+MyCat分库分表 读写疏散设置

3.7.2 schema.xml

用于界说逻辑库和逻辑表的设置文件.在设置文件中可以界说读写疏散,逻辑库,逻辑表,dataHost,dataNode等信息.

设置文件表明:

3.7.2.1 标签schema

设置逻辑库的标签

3.7.2.1.1 属性name

逻辑库名称

3.7.2.1.2 属性checkSQLschema

是否检测SQL语法中的schema信息.

如: Mycat逻辑库名称 A, dataNode名称B

SQL : select * from A.table;

checkSQLschema值是true, Mycat发送到数据库的SQL是select * from table;

checkSQLschema值是false,Mycat发送的数据库的SQL是select * from A.table;

3.7.2.1.3 sqlMaxLimit

Mycat在执行SQL的时辰,假如SQL语法中没有limit子句.自动增进limit子句. 停止一次性获得过多的数据,影响服从. limit子句的限定数目默认设置为100.假如SQL中有详细的limit子句,当前属性失效.

SQL : select * from table . mycat理会后: select * from table limit 100

SQL : select * from table limit 10 . mycat不做任何操纵修改.

3.7.2.2 标签table

界说逻辑表的标签,假如必要界说多个逻辑表,编写多个table标签。要求逻辑表的表名和物理表(MySQL数据库中真实存在的表)的表名同等。

3.7.2.2.1 属性name

逻辑表名

3.7.2.2.2 属性dataNode

数据节点名称. 设置文件中后续必要界说的标签(即物理数据库中的database名称).多个名称行使逗号脱离.

多个database界说后,代表分库。

3.7.2.2.3 属性rule

分片法则名称.详细的法则名称参考rule.xml设置文件.

SQL语句发送到Mycat中后,Mycat怎样计较,应该将当期的SQL发送到哪一个物理数据库打点体系或物理database中。

3.7.2.3 标签dataNode

界说数据节点的标签, 界说详细的物理database信息的。

3.7.2.3.1 属性name

数据节点名称, 是界说的逻辑名称,对应详细的物理数据库database

3.7.2.3.2 属性dataHost

引用dataHost标签的name值,代表行使的物理数据库地址位置和设置信息.

3.7.2.3.3 属性database

在dataHost物理机中,详细的物理数据库database名称.

3.7.2.4 dataHost标签

界说数据主机的标签, 就是物理MYSQL真实安装的位置。

3.7.2.4.1 属性name

界说逻辑上的数据主机名称

3.7.2.4.2 属性maxCon/minCon

最大毗连数, max connections

最小毗连数, min connections

3.7.2.4.3 属性dbType

数据库范例 : mysql数据库

3.7.2.4.4 属性dbDriver

数据库驱动范例, native,行使mycat提供的当地驱动.

3.7.2.5 dataHost子标签writeHost

写数据的数据库界说标签. 实现读写疏散操纵.

3.7.2.5.1 属性 host

数据库定名

3.7.2.5.2 属性url

数据库会见路径

3.7.2.5.3 属性user

数据库会见用户名

3.7.2.5.4 属性password

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读