MyCat配置MySql读写分离-WIN环境
一:关于MyCat
什么是MyCat:
1:一个彻底开源,面向企业应用开发的大数据库集群。
2:支持事务,ACID,可以替代MySql的加强版数据库。
3:一个可以视为MySql集群的企业级数据库,用来代替昂贵的Oracle集群。
4:一个融合内存缓存技术,NoSql技术,HDFS大数据的新型SQL Server。
5:结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品。
6:一个新颖的数据库中间件产品。
MyCat能做什么,有什么用途:
1:分库分表,把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。
2:读写分离,线性的提升数据库的读心梗,消除读写锁冲突从而提升数据库的写性能。
MyCat官方链接:
GiHub:https://github.com/MyCATApache/Mycat-Server
下载地址:https://github.com/MyCATApache/Mycat-download
本文使用版本:Mycat-server-1.6.7.1-release
个人链接(如果下载不便可以自提1.6.7版本):MyCat-server-1.6.7.1-release下载地址 (访问密码:5458)
二:使用教程
前提注意事项:MyCat不负责任何数据同步问题,因此需要提前配置好MySql的主从复制数据自动同步功能。可以参考之前的文章进行配置:
MYSQL一个设备上的主从复制实现(GTID版)-windows
MyCat三个主要配置文件:
rule.xml:表示分片规则。
schema.xml:是最主要的配置项,可配置物理数据库连接与分片等。
server.xml:可配置连接用户名与密码等。
1:在 server.xml 添加用户
在 mycat:server 标签下配置用户名和密码(自定义),使用客户端连接 MyCat 的时候会用到,就如同 MySql 的连接用户名和密码。
(system标签里的东西不用动,其他的保留一个user标签配置好就可以)。
name:连接时的用户名称。
password:连接密码。
schemas:schemas.xml 配置文件中 schema 标签对应的配置,同时也是数据库名称。
2:配置 schema.xml
schema 标签:
name:数据库名称。
checkSQLschema:数据库前缀设置,如果为true,select * from testDB.company会变为 select * from company 这种格式,会去掉testDB数据库前缀。
sqlMaxLimit:默认查询数量。
dataNode:对应dataNode标签的 name。
dataNode 标签:
name:自定义。
dataHost:对应dataHost 标签的 name。
database:数据库名。
dataHost 标签:
name:自定义。
maxCon:指定每个读写实例连接池的最大连接数。
minCon:指定每个读写实例连接池的最小连接数。
balance:
balance="0":不开启读写分离机制,所有读操作都发送到当前可用的 writeHost 上。
balance="1":全部的 readHost 与 stand by writeHost 参与 select 语句的负载均衡。
balance="2":所有读操作都随机的在 writeHost、readHost 上分发。
balance="3":所有读请求随机的分发到 wiriterHost 对应的 readHost 执行,writerHost 不负担读压力,balance="3"只有1.4版本及以后版本有。
writeType:
writeType="0":所有的写操作发送到配置的第一个 writeHost,第一个挂了切到还生存的第二个 writeHost,重新启动后以切换后的为准,切换记录在“dnindex.proerties”配置文件中。
writeType="1":所有写操作都随机的发送到配置的 writeHost。
writeHost 标签:配置接收写操作的数据库服务信息,示例为主服务器3307。
readHost 标签:配置接收读操作的数据库服务信息,示例为从服务器3308。
3:MyCat启动
点击 bin 目录下的 mycat.bat,安装 mycat 服务。
如果没有安装上,使用管理员命令窗口进入该目录执行一下命令:
mycat.bat install
启动服务,默认端口8066。
4:使用 MySql 客户端连接 MyCat ,并写入数据
示例使用的是 Navicat。
用户名和密码是在 server.xml 中配置的数据。
此时打开表查询到的就是配置的从数据库3308里的数据,
可以往从数据库3308的test表中加一条数据,
然后在mycat数据库中查看是否有变化(测试过记得删除,保证从主服务数据一致)。
在MyCat连接中执行一个插入数据语句。
查看主数据库3307库中的test表:
查看从数据库3308库中的test表:
额外注意:主节点(写库)宕机时,读节点也不能读。
时间仓促,如有错误欢迎指出,欢迎在评论区讨论,如对您有帮助还请点个推荐、关注支持一下
作者:博客园 - 凉年技术
出处:http://www.cnblogs.com/xxhxs-21/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
若内容有侵犯您权益的地方,请公告栏处联系本人,本人定积极配合处理解决。