一、是什么
Mycat 是数据库 是数据库 中间件 中间件 。
1、数据库中间件 中间件 :
是一类连接软件组和应用的计算机, 是一类连接软件组和应用的计算机, 是一类连接软件组和应用的计算机, 是一类连接软件组和应用的计算机, 是一类连接软件组和应用的计算机, 是一类连接软件组和应用的计算机, 是一类连接软件组和应用的计算机, 是一类连接软件组和应用的计算机, 是一类连接软件组和应用的计算机, 是一类连接软件组和应用的计算机, 以便于软件各部之间的沟通 以便于软件各部之间的沟通 以便于软件各部之间的沟通 以便于软件各部之间的沟通 以便于软件各部之间的沟通 以便于软件各部之间的沟通 。 例子 :TomcatTomcatTomcatTomcatTomcat ,web web中间件 中间件 。 数据库 中间件 中间件 :连接 javajavajavajava应用程序和数据库 应用程序和数据库 应用程序和数据库 应用程序和数据库
2、为什么要用 MycatMycat ?
① JavaJava Java与数据库紧耦合 与数据库紧耦合 与数据库紧耦合 与数据库紧耦合 。
② 高访问量并发对数据库的压力 高访问量并发对数据库的压力 高访问量并发对数据库的压力 高访问量并发对数据库的压力 高访问量并发对数据库的压力 高访问量并发对数据库的压力 。
③ 读写请求数据不一致 写请求数据不一致 写请求数据不一致
3、数据库中间件对比
① CobarCobar
属于阿里 属于阿里 B2BB2BB2B事业群,始于 事业群,始于 事业群,始于 事业群,始于 20082008 年,在阿里服役 年,在阿里服役 年,在阿里服役 年,在阿里服役 3年多,接管 年多,接管 3000+ 3000+个MySQL MySQL MySQL数据库的 schema, schema, schema, 集群日处理在线 群日处理在线 群日处理在线 SQLSQLSQL请求 50 亿次以上。由于 亿次以上。由于 亿次以上。由于 亿次以上。由于 CobarCobar 发起人的离职, 起人的离职, 起人的离职, CobarCobar 停止维护。 停止维护。 停止维护。
② My cat
是开源社区在阿里 是开源社区在阿里 是开源社区在阿里 cobar cobar 基础上进行二次开发,解决了 基础上进行二次开发,解决了 基础上进行二次开发,解决了 基础上进行二次开发,解决了 基础上进行二次开发,解决了 基础上进行二次开发,解决了 cobar 存在的问题,并且加入了许多新 存在的问题,并且加入了许多新 存在的问题,并且加入了许多新 存在的问题,并且加入了许多新 存在的问题,并且加入了许多新 存在的问题,并且加入了许多新 存在的问题,并且加入了许多新 的功能在其中。 青出于蓝而胜的功能在其中。 青出于蓝而胜的功能在其中。 青出于蓝而胜的功能在其中。 青出于蓝而胜的功能在其中。 青出于蓝而胜的功能在其中。 青出于蓝而胜的功能在其中。
青出于蓝而胜
③ OneProxy:
OneProxy OneProxyOneProxyOneProxy 基于 MySQL MySQL MySQL官方的 proxy proxy 思想利用 c进行开发的, 进行开发的, 进行开发的, 进行开发的, OneProxyOneProxy OneProxyOneProxyOneProxyOneProxy 是一款商业收费的中间件。舍 是一款商业收费的中间件。舍 是一款商业收费的中间件。舍 是一款商业收费的中间件。舍 是一款商业收费的中间件。舍 是一款商业收费的中间件。舍 弃了一些功能,专注在性和稳定上。 弃了一些功能,专注在性和稳定上。 弃了一些功能,专注在性和稳定上。 弃了一些功能,专注在性和稳定上。 弃了一些功能,专注在性和稳定上。 弃了一些功能,专注在性和稳定上。 弃了一些功能,专注在性和稳定上。 弃了一些功能,专注在性和稳定上。
④ kingshard:
kingshard kingshardkingshard由小团队用 由小团队用 由小团队用 go 语言开发,还需要展不断完善 语言开发,还需要展不断完善 语言开发,还需要展不断完善 语言开发,还需要展不断完善 语言开发,还需要展不断完善 语言开发,还需要展不断完善 语言开发,还需要展不断完善 语言开发,还需要展不断完善 。
⑤ ViteViteViteVitess :
是YoutubeYoutube Youtube 生产在使用 生产在使用 生产在使用 ,架构很复杂。不支持 架构很复杂。不支持 架构很复杂。不支持 架构很复杂。不支持 架构很复杂。不支持 MySQLMySQLMySQL MySQL原生协议,使用需要大量改造成本 原生协议,使用需要大量改造成本 原生协议,使用需要大量改造成本 原生协议,使用需要大量改造成本 原生协议,使用需要大量改造成本 原生协议,使用需要大量改造成本 。
⑥ AtlasAtlasAtlasAtlas:
是360 团队基于 团队基于 mysql proxymysql proxymysql proxy mysql proxymysql proxy mysql proxy 改写 ,功能还需完善 ,功能还需完善 ,功能还需完善 ,高并发下不稳定 ,高并发下不稳定 ,高并发下不稳定 ,高并发下不稳定 。
⑦ MaxScale MaxScale:
MaxScale是mariadbmariadb mariadbmariadb (MySQL MySQLMySQLMySQL原作者维护的一个版本 原作者维护的一个版本 原作者维护的一个版本 原作者维护的一个版本 ) 研发的中间件 研发的中间件 研发的中间件 研发的中间件
⑧ MySQLRout:
MySQLRoutMySQLRout MySQLRoutMySQLRoutMySQLRout e是MySQL MySQL MySQL官方 OracleOracleOracle Oracle公司发布的中间件 公司发布的中间件 公司发布的中间件
4、Mycat 的官网
5、下载 mycat 1.6.7 2020-02-18地址
http://dl.mycat.org.cn/1.6.7.5/2020-2-18/
6、下载mycat-web-1.0地址
http://dl.mycat.org.cn/mycat-web-1.0/
第二章 安装启动
2.1 安装
1、解压后 即可使用
解压缩文件拷贝到 解压缩文件拷贝到 解压缩文件拷贝到 解压缩文件拷贝到 linux 下 /usr/l/local/
2、三个 配置 文件
①schema.xml:定义逻辑库,表、分片节点等内容
②rule.xml:定义 分片 规则
③server.xml:定义用户以及系统相关变量,如端口等
2.2、 启动
1、修改配置文件 server.xml
修改用户信息,与MySQL区分,如下:
.......
<user name="mycat">
<property name="password">123 456</property>
<property name="schemas">TESTDB</property>
ser>
.......
2、修改配置文件 schema.xml
删除 <schem<schem <schem a>标签间的 标签间的 标签间的 表信息 表信息 ,<dataNode >标签只留一个,<dataHost >标签只留一个 ,<writeHost ><readHost>只留一 对
3、验证数据库访问情况
mysql -uroot -p123123 -h 192.168.140.128 -P 3306
mysql -uroot -p123123 -h 192.168.140.127 -P 3306
#如远程访问报错,请建对应用户 远程访问报错,请建对应用户 远程访问报错,请建对应用户 远程访问报错,请建对应用户
grant all privileges on *.* to root@'缺少的host' identified by '123123';
4、启动程序
①控制台启动 控制台启动 控制台启动 :去 mycat/bin目录下 目录下 执行 ./mycat console
②后台启动 后台启动 :去 mycat/bin目录下 目录下 ./ mycat start
2.3 登陆
1、登录后台管理窗 口
mysql -umycat -p123456 -P 8066 -h 192.168.140.128