MyCat 的安装与测试

一、环境准备

(1)、本机环境是三台centos7

IP

主机名

数据库名

安装软件

192.168.77.128

master

db1

mycat,mysql

192.168.77.129

slave1

db2

mysql

192.168.77.134

slave2

db3

mysql

(2)安装mycat的linux中新建用户和组

       1、创建一个新的group

                groupadd mycat

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

               useradd -g mycat mycat

       3、给新用户设置密码

               passwd mycat

二、安装MySQL并创建数据库

(1)安装MySQL参考我的其他两篇文章:

           CentOS7 yum方式 安装MySQL5.7

           CentOS7.4 RPM方式安装mysql5.7

 (2)创建数据库

      根据不同机器数据库名不同

create database db1/db2/db3;

创建后效果如下:

MyCat 的安装与测试_第1张图片MyCat 的安装与测试_第2张图片MyCat 的安装与测试_第3张图片

三、下载安装MyCat:

MyCat的官方网站:

http://www.mycat.org.cn/

下载地址:https://github.com/MyCATApache/Mycat-download

也可以下载我的百度云版本:

链接: https://pan.baidu.com/s/1-J-Tb19yozUvfga-hbS0KA            提取码: b262

第一步:将Mycat-server-1.4-release-20151019230038-linux.tar.gz上传至服务器

第二步:将压缩包解压缩。建议将mycat放到/usr/local/mycat目录下。

tar -xzvf Mycat-server-1.4-release-20151019230038-linux.tar.gz

mv mycat /usr/local

四、MyCat分片配置

注:1、2、3 的操作目录:/usr/local/mycat/conf

(1)配置schema.xml

schema.xml作为MyCat中重要的配置文件之一,管理着MyCat的逻辑库、逻辑表以及对应的分片规则、DataNode以及DataSource。弄懂这些配置,是正确使用MyCat的前提。这里就一层层对该文件进行解析。

schema 标签用于定义MyCat实例中的逻辑库

Table 标签定义了MyCat中的逻辑表  rule用于指定分片规则,auto-sharding-long的分片规则是按ID值的范围进行分片 1-5000000 为第1片  5000001-10000000 为第2片....  。

dataNode 标签定义了MyCat中的数据节点,也就是我们通常说所的数据分片。

dataHost标签在mycat逻辑库中也是作为最底层的标签存在,直接定义了具体的数据库实例、读写分离配置和心跳语句。

在服务器上创建3个数据库,分别是db1   db2   db3

修改schema.xml如下:









select user()




select user()




 select user()
 
 



 
  

 

(2)配置 server.xml

server.xml几乎保存了所有mycat需要的系统配置信息。最常用的是在此配置用户名、密码及权限。在system中添加UTF-8字符集设置,否则存储中文会出现问号

utf8

在conf目录下配置server.xml ,将目录下没有的用户全部删掉或者注释掉,添加可用的用户,这里添加了一个root用户:

      
          123456
          youfanshop
      

MyCat 的安装与测试_第4张图片

(3)修改conf下的partition-hash-int.txt文件

  在下面添加10020=2,原本默认的是分两个就是10000和10010,现在我们三个就要三个分类id了,添加一个即可

MyCat 的安装与测试_第5张图片

(4)设置mysql忽略大小写

在三台mysql的配置文件vi /etc/my.cnf中加入lower_case_table_names = 1来忽略大小写:

lower_case_table_names = 1

(5)修改hosts文件

由于上面schema.xml文件配置使用了slave1、slave2、master没有指定ip,所以需要在hosts中映射过去:

192.168.77.128 master
192.168.77.129 slave1
192.168.77.134 slave2

MyCat 的安装与测试_第6张图片

五、测试MyCat

1、启动MyCat

mycat 的bin目录下执行 ./ mycat start

查看logs:

tail -100 wrapper.log

看到如下结果就是成功了

MyCat 的安装与测试_第7张图片

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 或者sqlyog连接mycat,mycat默认端口是8066,配置如图:

MyCat 的安装与测试_第8张图片

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

在连上的mycat中执行如下语句

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);

MyCat 的安装与测试_第9张图片

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

MyCat 的安装与测试_第10张图片

db1

MyCat 的安装与测试_第11张图片

db2

MyCat 的安装与测试_第12张图片

db3

MyCat 的安装与测试_第13张图片

可以看到新增的6条记录被mycat分配到了三台服务器的数据库上。

 

六、sqlyog连接MyCat报错2003

可能是MyCat所在主机没有关闭防火墙:

systemctl stop firewalld

关闭之后,发现问题已解决。

或者不想关闭防火墙,可以打开8066端口:

     1. 开放端口命令: /sbin/iptables -I INPUT -p tcp --dport 8066 -j ACCEPT

      2.保存:/etc/rc.d/init.d/iptables save

      3.重启服务:/etc/init.d/iptables restart

      4.查看端口是否开放:/sbin/iptables -L -n

打开端口也可以这样:

firewall-cmd --add-port=8066/tcp --permanent
firewall-cmd --reload

   PS:如果你想一次性添加多个接口,可以将1重复执行多次,然后一次性执行2、3、4。

 

 

 

 

 

 

你可能感兴趣的:(MySQL,Linux)