MySQL实操系列
目录
整体架构
实现目标
环境准备
环境搭建
1.Mycat下载
2.Mycat下载安装、配置、启动、测试
2.1 Mycat下载安装
2.2 Mycat配置
2.3 Mycat启动
2.4 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
将下载的压缩包上传到Mycat服务器的/usr/soft/mycat目录下,执行解压命令
tar -zxvf Mycat-server-1.6.6.1-release-linux.tar.gz
解压后文件路径及目录如下
进入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 |
进入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
...
进入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
测试之前要确保的问题:
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;
登录数据库查看是否分库分表
方式二:通过SQL管理工具测试
以navicat为例,在navicat中新建Mysql连接:主机为Mycat服务器IP,Mycat端口默认8066,用户名和密码为在server.xml中配置的name和password,其余测试均同方式一一致