码迷,mamicode.com
首页 > 其他好文 > 详细

mycat安装和测试

时间:2017-05-16 10:10:20      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:let   查看   shard   path   linu   order   name   安装路径   type   

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. make install

因为编译安装,后面为了使用方便要将服务注册到init服务中比较麻烦,这里介绍最简单的yum安装

1.     安装mysql客户端

yum -y install mysql

 

2.     安装mysql服务器端

yum -y install mysql-server

yum -y install mysql-devel

 

3.添加mysql用户及权限并配置数据库

三台服务器都安装mysql以后 ,三台机器同样配置数据库

具体步骤如下:

  1. 配置编码格式,vi  /etc/my.cnf  ,添加default-character-set=utf8

 

  1. 添加开机启动项

chkconfig --add mysqld

chkconfig mysqld on

 

  1. 启动mysql,service mysqld start

 

  1. 配置root用户并设置密码,mysqladmin -u root password 123456

 

  1. 创建新用户,首先用root用户登录,mysql -uroot –p然后输入密码

 

执行use mysql,进入用户管理库,执行select user,host from user;查询当前用户发现有一些user是空的用户,直接删掉,delete  from  user  where   user=”” 否则后面会出问题

 

 

这里能看到只能本机访问root,可以通过执行语句update user set host = ‘%‘ where user = ‘root‘ and host=‘localhost‘;;来释放root的访问权限,让所有ip都能通过root登录

 

执行语句insert into mysql.user(Host,User,Password) values("%","mycat",password("123456"));添加新用户

 

然后是赋权限,我这里是赋了所有权限,可以只赋某个库,或者部分权限,命令自己网上查,执行赋权限语句grant all privileges on *.* to ‘mycat‘@‘%‘ identified by ‘123456‘;后一定记得执行flush privileges;来刷新权限

 

登录新建的用户并创建响应的数据库,mysql –umycat –p   ,create database db1/db2/db3,根据不同机器数据库名不同

 

  1. 上述操作在三台机器上一样操作

 

三.  安装mycat

1.安装mycat软件并创建用户

下载解压tar -zxvf Mycat-server-1.4-release-20151019230038-linux.tar.gz

配置环境变量

export MYCAT_HOME=/opt/sxt/soft/mycat

PATH=$PATH:$MYCAT_HOME/bin

 

通过配置sh /opt/sxt/soft/mycat/bin/mycat start执行开机启动也可以自己写脚本加入init服务

 

创建一个新的group

groupadd mycat

创建一个新的用户,并加入group

useradd -g mycat mycat

给新用户设置密码,

passwd mycat

 

2.配置mycat配置文件

在三台mysql的配置文件vi /etc/my.cnf中加入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节点的东西全部干掉,如下配置
<table name="employee" primaryKey="ID" dataNode="dn1,dn2,dn3"
rule="sharding-by-intfile" />
</schema>
<!--数据节点dn1,对应的主机c1,对应是数据库db1 -->
<dataNode name="dn1" dataHost="master" database="db1" />
<dataNode name="dn2" dataHost="slave1" database="db2" />
<dataNode name="dn3" dataHost="slave2" database="db3" />
<!-- 主机C1-->
<dataHost name="master" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native">
<heartbeat>select user()</heartbeat>
<!--mysql数据库的连接串 -->
<writeHost host="hostM1" url="master:3306" user="mycat"
password="123456">
</writeHost>
</dataHost>
<!-- 主机C2-->
<dataHost name="slave1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM2" url="slave1:3306" user="mycat"
password="123456">
</writeHost>
</dataHost>
<!-- 主机C3-->
<dataHost name="slave2" maxCon="1000" minCon="10" balance="0"
  writeType="0" dbType="mysql" dbDriver="native">
 <heartbeat>select user()</heartbeat>
 <!--mysql数据库的连接串 -->
 <writeHost host="hostM3" url="slave2:3306" user="mycat"
    password="123456">
 </writeHost>
</dataHost>

在conf目录下配置server.xml ,将目录下没有的用户全部删掉或者注释掉,添加可用的用户,这里添加了
<user name="mycat">
<property name="password">123456</property>
<property name="schemas">JamesMycatSchema</property>
</user>

修改conf下的partition-hash-int.txt文件  在下面添加10020=2,原本默认的是分两个就是10000和10010,现在我们三个就要三个分类id了,添加一个即可

四.  测试mycat

1.启动mycat,

执行mycat start

 

tail -100  $MYCAT_HOME/logs/wrapper.log查看结果如下就表明启动成功了

 

2.测试mysql表横向分割

在虚拟机外的windows安装Navicat for MySQL,分别连接到三个mysql数据库,执行建表语句create table employee (id int not null primary key,name varchar(100),sharding_id int not null);

用Navicat for MySQL连接mycat,mycat默认端口是8066,配置如图:

 

因为刚才执行了建表语句,这时候连接上了mycat里面也有一个空的employee表

执行如下语句

insert into employee(id,name,sharding_id) values(1, ‘I am db1‘,10000);

insert into employee(id,name,sharding_id) values(2, ‘I am db2‘,10010);

insert into employee(id,name,sharding_id) values(3, ‘I am db3‘,10020);

insert into employee(id,name,sharding_id) values(4, ‘I am db1‘,10000);

insert into employee(id,name,sharding_id) values(5, ‘I am db2‘,10010);

insert into employee(id,name,sharding_id) values(6, ‘I am db3‘,10020);

 

刷新一下navicat查看mycat连接的库

mycat安装和测试

标签:let   查看   shard   path   linu   order   name   安装路径   type   

原文地址:http://www.cnblogs.com/wanghuaijun/p/6859593.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!