1.安装准备环境
1.1 安装JDK
因为MyCat是java开发的,所以需要java虚拟机环境,在Linux节点中安装JDK
是必须的。
1.2 放开相关端口
在主从节点上都放开对端口3306的访问,或者直接关闭防火墙
。
# 临时关闭
service iptables stop
service iptables start
# 永久关闭
chkconfig iptables on
chkconfig iptables off
# 查看防火墙状态
service iptables status
1.3 root账号
MyCat是我们的数据库中间件,那么MyCat必然要能够访问对应的主从
数据库,所以在主从
数据库中我们需要分别创建访问的账号。
grant all privileges on *.* to "root"@"%" identified by "123456" with grant option;
flush privileges;
2.安装MyCat
2.1 下载安装软件
官网地址:http://www.mycat.io/
2.2 上传解压安装
将下载的文件上传到/usr/local
目录下,并解压
2.3 目录介绍
解压后的目录结构如下:
目录 | 描述 |
---|---|
bin | 目录里是启动脚本 |
conf | 目录里是配置文件 |
catlet | 为 MyCat 的一个扩展功能 |
lib | 目录里是 MyCat 和它的依赖 jar |
logs | 目录里是 console.log 用来保存控制台日志,和 MyCat.log 用来保存 MyCat 的 log4j日志 |
MyCat的架构其实很好理解,MyCat是代理
,MyCat后面就是物理数据库。和Web服务器的 Nginx类似。对于使用者来说,访问的都是 MyCat,不会接触到后端的数据库。
注意
:MyCat的主要配置文件都在conf
目录下。我们给大家来介绍下介个核心的配置文件
配置文件 | 说明 |
---|---|
server.xml | MyCat 的配置文件,设置账号、参数等 |
schema.xml | MyCat 对应的物理数据库和数据库表的配置 |
rule.xml | MyCat 分片(分库分表)规则 |
2.1 server.xml
server.xml
是用来配置账号,参数及相关操作权限的文件,下面是给文件的简要内容,去掉了相关的注释
0
0
2
0
0
1
1m
1k
0
384m
true
123456
TESTDB
user
TESTDB
true
system
标签中设置的是系统级别的相关参数,参考源文件中的注释即可能看懂,初始默认即可
user
标签是我们要注意的地方。MyCat 中的用户,用户可以访问的逻辑库,可以访问的逻辑表,服务的端口号等
说明
:上面的默认的配置表示 创建的有两个用户root
和user
账号
root
账号,密码是123456
,对应的逻辑库是 TESTDB
user
账号,密码是user
,对应的逻辑库是 TESTDB
,权限是只读
注释掉的privileges
表示root
用户的操作权限
参数 | 说明 | 事例 |
---|---|---|
dml | insert,update,select,delete | 0000 |
dml 权限顺序为:insert(新增),update(修改),select(查询),delete(删除),0000–> 1111,0 为禁止权限,1 为开启权限
。
2.2 schema.xml
schema.xml 是最主要的配置文件,首先看默认的配置文件
select user()
2.2.1 主要节点介绍
在配置文件中可以定义读写分离,逻辑库,逻辑表,dataHost,dataNode 等信息.
节点
描述
schema
配置逻辑库,name 与 server.xml 中 schema 对应
dataNode
定义数据节点的标签,也就是分库相关配置
dataHost
物理数据库,真正存储数据的数据库
2.2.2 节点及相关属性介绍
2.2.2.1 schema
属性name
逻辑库名称
属性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;
属性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 不做任何操作修改.
标签 table
定义逻辑表的标签
属性 name
逻辑表名
属性 dataNode
数据节点名称. 即物理数据库中的 database 名称.多个名称使用逗号分隔.
属性 rule
分片规则名称.具体的规则名称参考 rule.xml 配置文件.
2.2.2.2 dataNode
属性 name
数据节点名称, 是定义的逻辑名称,对应具体的物理数据库 database
属性 dataHost
引用 dataHost 标签的 name 值,代表使用的物理数据库所在位置和配置信息.
属性 database
在 dataHost 物理机中,具体的物理数据库 database 名称.
2.2.2.3 dataHost
属性 name
定义逻辑上的数据主机名称
属性 maxCon/minCon
最大连接数, max connections
最小连接数, min connections
属性 dbType
数据库类型 : mysql 数据库
属性 dbDriver
数据库驱动类型, native,使用 MyCat提供的本地驱动.
dataHost 子标签 writeHost
写数据的数据库定义标签. 实现读写分离操作.
属性 host
数据库命名
属性 url
数据库访问路径
属性 user
数据库访问用户名
属性 password
访问用户密码
writeHost 子标签 readHost
属性 host
数据库命名
属性 url
数据库访问路径
属性 user
数据库访问用户名
2.3 rule.xml
用于定义分片规则的配置文件。mycat 默认的分片规则: 以 500 万
为单位,实现分片规则.逻辑库 A 对应 dataNode - db1 和 db2. 1-500 万保存在 db1 中, 500 万零 1 到 1000 万保存在 db2 中,1000 万零 1 到 1500 万保存在 db1 中.依次类推.
id
func1
user_id
func1
sharding_id
hash-int
id
rang-long
id
mod-long
id
murmur
id
crc32slot
create_time
partbymonth
calldate
latestMonth
id
rang-mod
id
jump-consistent-hash
0
2
160
2
partition-hash-int.txt
autopartition-long.txt
3
8
128
24
yyyy-MM-dd
2015-01-01
partition-range-mod.txt
3
简化版
id
mod-long
3
由上我们可以发现在rule.xml
文件中,核心的标签就两个tableRule
和function
,我们分别来介绍下
2.3.1 tableRule
是用来声明table的分片规则的,相关属性及标签的含义如下
节点
描述
name
属性指定唯一的名字,用于标识不同的分片规则。内嵌的
rule
标签则指定对物理表中的哪一列进行拆分和使用什么分片算法
columns
指定要拆分的列名字
algorithm
使用 function 标签中的 name 属性。连接表规则和具体分片算法。 table 标签内使用。让逻辑表使用这个规则进行分片
2.3.2 function
指定分片规则的算法的具体实现
节点
描述
name
指定算法的名字
class
制定分片算法具体的类名字
property
为具体算法需要用到的一些属性
ok~MyCat的安装及相关配置介绍就介绍到此,下篇我们介绍通过MyCat来具体实现读写分离
关注微信公众号【程序员的梦想】,专注于Java,SpringBoot,SpringCloud,微服务,Docker以及前后端分离等全栈技术。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容- 如何在 Java 中实现对正方形的缩放操作?(如何在Java中对正方形进行缩放操作)
- 如何正确使用 Java 的 join 方法?(java join方法怎么使用)
- Java 中 DecimalFormat 在哪些场景下使用较为合适?(Java DecimalFormat在哪里使用合适)
- 如何确保Redis客户端的安全性:实用技巧与最佳实践
- 在 JavaScript 中如何使用 parentNode?(javascript中的parentNode怎么用)
- 如何高效编码 Java Supplier 接口?(java supplier接口的高效编码技巧)
- 如何进行 Java NoSQL 查询优化?(java nosql查询优化怎样进行)
- Java 中 `equals()` 的核心究竟是什么?(java eques的核心是什么)
- Java代理模式的优缺点分别有哪些?(Java代理模式有哪些优缺点)
- 2024下半年北京软考成绩复查时间及流程
猜你喜欢
AI推送时光机MyCat教程三:安装及配置介绍
数据库2015-06-08数据库介绍以及mysql的安装配置,超详细教程
数据库2023-12-25Tushare介绍、安装及使用教程
数据库2023-10-08Zabbix安装配置介绍
数据库2024-04-02miniconda3介绍、安装以及使用教程
数据库2023-02-14CentOS系统下安装及配置JDK介绍
数据库2022-06-04mysql安装及配置步骤详细介绍
数据库2024-04-02Centos7.7安装及配置教程
数据库2023-09-21mysql5.7安装及配置教程
数据库2024-04-02Nginx的安装配置介绍
数据库2023-06-04安装及配置mysql的详细步骤介绍
数据库2024-04-02MySQL5.7安装及配置MGR教程
数据库2024-04-02nexus安装及配置图文教程
数据库2024-04-02Jmeter安装及配置教程详解
数据库2024-04-02详细介绍GitLab的安装和配置过程
数据库2023-10-22分布式系统介绍及MogileFS安装、基本配置
数据库2024-04-02eve模拟器安装教程介绍
数据库2024-04-18Python使用Selenium WebDriver的入门介绍及安装教程
数据库2023-08-222022MySQL 8.0.30 安装及配置(详细教程)
数据库2023-09-07MySQL9.0(innovation)安装及配置详细教程
数据库2024-08-15 咦!没有更多了?去看看其它编程学习网 内容吧