mycat安装和测试.docx
《mycat安装和测试.docx》由会员分享,可在线阅读,更多相关《mycat安装和测试.docx(12页珍藏版)》请在冰豆网上搜索。
![mycat安装和测试.docx](https://file1.bdocx.com/fileroot1/2022-10/27/f71b1dd6-d9b6-4168-8feb-3bdd47442aa2/f71b1dd6-d9b6-4168-8feb-3bdd47442aa21.gif)
mycat安装和测试
mycat安装和测试
一.环境准备
本机环境是三台centos6.5
IP
主机名
数据库名
安装软件
192.168.17.4
master
db1
mycat,mysql
192.168.17.5
slave1
db2
mysql
192.168.17.6
slave2
db3
mysql
二.安装mysql
1.安装mysql软件
linux下安装mysql有两种方式:
一种是通过下载源码编译安装,一种是通过rpm包安装,如果配置了yum直接用yum安装会更快
编译安装步骤:
1../congfigrue–prefix=安装路径
2.make
3.makeinstall
因为编译安装,后面为了使用方便要将服务注册到init服务中比较麻烦,这里介绍最简单的yum安装
1.安装mysql客户端
yum-yinstallmysql
2.安装mysql服务器端
yum-yinstallmysql-server
yum-yinstallmysql-devel
3.添加mysql用户及权限并配置数据库
三台服务器都安装mysql以后,三台机器同样配置数据库
具体步骤如下:
1.配置编码格式,vi/etc/f,添加default-character-set=utf8
2.添加开机启动项
chkconfig--addmysqld
chkconfigmysqldon
3.启动mysql,servicemysqldstart
4.配置root用户并设置密码,mysqladmin-urootpassword123456
5.创建新用户,首先用root用户登录,mysql-uroot–p然后输入密码
执行usemysql,进入用户管理库,执行selectuser,hostfromuser;查询当前用户发现有一些user是空的用户,直接删掉,deletefromuserwhereuser=””否则后面会出问题
这里能看到只能本机访问root,可以通过执行语句updateusersethost='%'whereuser='root'andhost='localhost';;来释放root的访问权限,让所有ip都能通过root登录
执行语句insertintomysql.user(Host,User,Password)values("%","mycat",password("123456"));添加新用户
然后是赋权限,我这里是赋了所有权限,可以只赋某个库,或者部分权限,命令自己网上查,执行赋权限语句grantallprivilegeson*.*to'mycat'@'%'identifiedby'123456';后一定记得执行flushprivileges;来刷新权限
登录新建的用户并创建响应的数据库,mysql–umycat–p,createdatabasedb1/db2/db3,根据不同机器数据库名不同
6.上述操作在三台机器上一样操作
三.安装mycat
1.安装mycat软件并创建用户
下载解压tar-zxvfMycat-server-1.4-release-20151019230038-linux.tar.gz
配置环境变量
exportMYCAT_HOME=/opt/sxt/soft/mycat
PATH=$PATH:
$MYCAT_HOME/bin
通过配置sh/opt/sxt/soft/mycat/bin/mycatstart执行开机启动也可以自己写脚本加入init服务
创建一个新的group
groupaddmycat
创建一个新的用户,并加入group
useradd-gmycatmycat
给新用户设置密码,
passwdmycat
2.配置mycat配置文件
在三台mysql的配置文件vi/etc/f中加入lower_case_table_names=1来忽略大小写
编辑schema文件
先备份一下cp$MYCAT_HOME/conf/schema.xml $MYCAT_HOME/conf/schema.xml.tmp
vim$MYCAT_HOME/conf/schema.xml
将里面mycat:
schema节点的东西全部干掉,如下配置
rule="sharding-by-intfile"/>
--数据节点dn1,对应的主机c1,对应是数据库db1-->
--主机C1-->
writeType="0"dbType="mysql"dbDriver="native">
selectuser()
--mysql数据库的连接串-->
3306"user="mycat"
password="123456">
--主机C2-->
writeType="0"dbType="mysql"dbDriver="native">
selectuser()
3306"user="mycat"
password="123456">
--主机C3-->
writeType="0"dbType="mysql"dbDriver="native">
selectuser()
--mysql数据库的连接串-->
3306"user="mycat"
password="123456">
在conf目录下配置server.xml ,将目录下没有的用户全部删掉或者注释掉,添加可用的用户,这里添加了
123456
JamesMycatSchema
修改conf下的partition-hash-int.txt文件在下面添加10020=2,原本默认的是分两个就是10000和10010,现在我们三个就要三个分类id了,添加一个即可
四.测试mycat
1.启动mycat,
执行mycatstart
tail-100$MYCAT_HOME/logs/wrapper.log查看结果如下就表明启动成功了
2.测试mysql表横向分割
在虚拟机外的windows安装NavicatforMySQL,分别连接到三个mysql数据库,执行建表语句createtableemployee(idintnotnullprimarykey,namevarchar(100),sharding_idintnotnull);
用NavicatforMySQL连接mycat,mycat默认端口是8066,配置如图:
因为刚才执行了建表语句,这时候连接上了mycat里面也有一个空的employee表
执行如下语句
insertintoemployee(id,name,sharding_id)values(1,'Iamdb1',10000);
insertintoemployee(id,name,sharding_id)values(2,'Iamdb2',10010);
insertintoemployee(id,name,sharding_id)values(3,'Iamdb3',10020);
insertintoemployee(id,name,sharding_id)values(4,'Iamdb1',10000);
insertintoemployee(id,name,sharding_id)values(5,'Iamdb2',10010);
insertintoemployee(id,name,sharding_id)values(6,'Iamdb3',10020);
刷新一下navicat查看mycat连接的库
db1
db2
db3