MySQL实操(三)——使用Mycat实现分库分表+读写分离

 MySQL实操系列

  • MySQL实操(一)——CentOS7安装MySQL5.7及基础配置_DreamEhome的博客-CSDN博客_centos7 中安装mysql5.7配置表名忽略大小写
  • MySQL实操(二)——MySQL主从同步实战_DreamEhome的博客-CSDN博客
  • MySQL实操(三)——使用Mycat实现分库分表+读写分离_DreamEhome的博客-CSDN博客
  • MySQL实操(四)——使用Haproxy+keeplived实现Mycat高可用_DreamEhome的博客-CSDN博客

目录

整体架构

实现目标

环境准备

环境搭建

1.Mycat下载

2.Mycat下载安装、配置、启动、测试

2.1 Mycat下载安装

2.2 Mycat配置

2.3 Mycat启动

2.4 Mycat分库分表读写分离测试


整体架构

MySQL实操(三)——使用Mycat实现分库分表+读写分离_第1张图片

实现目标

  • 搭建MySQL主从复制集群
  • 安装Mycat并配置分库分表+读写分离

环境准备

  • 虚拟机三台(演示用的CentOS7,其中两台为MySQL主从,一台Mycat服务器,三台服务器均需开启远程访问功能
  • 已安装配置完成的MySQL两台虚拟机(可参考MySQL实操(一)——CentOS7安装MySQL5.7及基础配置(开机启动+初始密码修改+开启远程访问+不区分大小写)_DreamEhome的博客-CSDN博客_centos7 中安装mysql5.7配置表名忽略大小写)
  • 两个MySQL搭建完成主从复制(可参考MySQL实操(二)——MySQL主从同步实战_DreamEhome的博客-CSDN博客,IP及主从配置同参考
  • Mycat服务器需配置Java环境变量
  • 相关服务虚拟机地址
    • MySQL-Master:192.168.237.135
    • MySQL-Slave : 192.168.237.136
    • Mycat             :  192.168.237.134

环境搭建

1.Mycat下载

可从以下网址下载Mycat:

        CSDN下载:Mycat-server-1.6.6.1ForLinux-CentOS文档类资源-CSDN下载

        Mycat官网地址:MyCat2

        Mycat Gitee地址:Mycat2: Mycat2是Mycat社区开发的一款分布式关系型数据库(中间件)。它支持分布式SQL查询,兼容MySQL通信协议,以Java生态支持多种后端数据库,通过数据分片提高数据查询处理能力

        Mycat GitHub地址:GitHub - MyCATApache/Mycat-Server

具体下载哪个版本以发布为准,推荐稳定最新版,当前演示使用1.6.6.1

2.Mycat下载安装、配置、启动、测试

2.1 Mycat下载安装

将下载的压缩包上传到Mycat服务器的/usr/soft/mycat目录下,执行解压命令

tar -zxvf Mycat-server-1.6.6.1-release-linux.tar.gz

解压后文件路径及目录如下

MySQL实操(三)——使用Mycat实现分库分表+读写分离_第2张图片

进入mycat,目录说明如下

目录 说明
bin mycat命令,启动、重启、停止等
catlet catlet为Mycat的一个扩展功能
conf Mycat 配置信息,重点关注:主要配置文件为rule.xml、schema.xml和server.xml三个
lib Mycat依赖的jar包,Mycat是java开发的
logs 日志文件,包括Mycat启动日志wrapper.log和运行日志mycat.log

2.2 Mycat配置

进入mycat/conf目录下,修改rule.xml、schema.xml和server.xml三个配置文件

配置文件下载地址:Mycat配置文件,请配合博客使用-Linux文档类资源-CSDN下载

修改server.xml

#进入conf配置目录
cd /usr/soft/mycat/mycat/conf
#修改server.xml
vim server.xml

只修改server.xml中的user标签




	...
	
	
		123456
		mydb
	

修改schema.xml(Mycat的主要配置文件

vim schema.xml

schema.xml所有内容及备注如下




	
		
		
	
	
	
        
		select user()
		
		
			
		
	
	
 
  

修改rule.xml

vim rule.xml

如在schema.xml中引用的rule(拆分规则)为mod-long,则到rule.xml中找到mod-long并修改其配置;并设置数据库节点数量及拆分后的切换数量




	...
	
	
		
			id
			mod-long
		
	
	...
	
		0
		2
		160
		
		
	
	...
	
		
		2
	
	...

2.3 Mycat启动

进入mycat/bin目录下,启动mycat

#进入mycat的bin目录
cd /usr/soft/mycat/mycat/bin
#启动mycat
./mycat start

 Mycat其他命令

#启动
./mycat start
#停止
./mycat stop
#前台运行
./mycat console
#添加到系统自动启动
./mycat install
#取消随系统自动启动
./mycat remove
#重启服务
./mycat restart
#暂停
./mycat pause
#查看启动状态
./mycat status

2.4 Mycat分库分表读写分离测试

测试之前要确保的问题

        1.两台Mysql服务器主从同步成功

        2.确保MySqlMaster中mydb01和mydb02两个数据库存在(在schema.xml中配置的dataNode.database属性

        3.确保MySqlMastermydb01和mydb02两个库中都有user表,且表的字段相同(在schema.xml中配置的schema.table属性

        4.通过Mycat执行的SQL语句和SQL92基本一致,语法相对较为严格。如下所示

--可执行的
INSERT INTO user (id,userName,userPwd,age,address) VALUES (1, 'admin', '123', 100, '3');
--不可执行的
INSERT INTO user VALUES (1, 'admin', '123', 100, '3');

方式一:在Mysql服务器上登录Mycat进行测试

说明:不能直接在Mycat服务器上测试的原因是因为Mycat服务器上没有安装Mysql,无法执行mysql之类的命令,如果mycat和mysql服务在同一台服务器上,可以直接进行测试

登录mycat进行操作

#登录Mycat
#    -u 登录名 用户名和密码为在server.xml中配置的name和password
#    -p 密码
#    -h Mycat服务器地址
#    -P Mycat端口号,默认8066
mysql -uroot -p123456 -h192.168.237.134 -P8066;

MySQL实操(三)——使用Mycat实现分库分表+读写分离_第3张图片

 登录数据库查看是否分库分表

MySQL实操(三)——使用Mycat实现分库分表+读写分离_第4张图片

方式二:通过SQL管理工具测试

以navicat为例,在navicat中新建Mysql连接:主机为Mycat服务器IP,Mycat端口默认8066,用户名和密码为在server.xml中配置的name和password,其余测试均同方式一一致

MySQL实操(三)——使用Mycat实现分库分表+读写分离_第5张图片

你可能感兴趣的:(MySQL,mysql,centos,mysql优化,数据库)