数据库中间件——MyCat:Linux环境安装并部署MyCat

前言:这几天在研究数据库中间件方面的知识,并尝试在服务器上搭建MyCat,在此记录一下。

先前准备:Linux服务器一台(我使用的是VMware Workstation Pro搭建的虚拟环境,操作系统是CentOS 7.8.2003,同时我安装了GNOME图形化界面和宝塔Linux面板)

PS.安装GNOME图形化界面和宝塔面板是为了方便部分操作,如果命令行使用熟练的话完全不需要安装。

(1).连接本地虚拟机服务器

若本地主机已经可以访问本地虚拟机,请跳过这一步

1.打开虚拟机并进入桌面,点击右上方关机按钮

数据库中间件——MyCat:Linux环境安装并部署MyCat_第1张图片

2.打开虚拟机并进入桌面,点击"有线 已关闭",再点击连接。当"有线 已关闭"变为"有线 已连接",则连接成功。

数据库中间件——MyCat:Linux环境安装并部署MyCat_第2张图片

3.在桌面右键,点击打开终端。

数据库中间件——MyCat:Linux环境安装并部署MyCat_第3张图片

4.输入ifconfig,查看虚拟机ip地址。如图所示,虚拟机地址为192.168.226.128。

数据库中间件——MyCat:Linux环境安装并部署MyCat_第4张图片

5.本地主机打开CMD,输入ipconfig,查看主机ip。如图所示,主机地址为192.168.119.1。

数据库中间件——MyCat:Linux环境安装并部署MyCat_第5张图片

6.互相ping一下试试看。

数据库中间件——MyCat:Linux环境安装并部署MyCat_第6张图片

数据库中间件——MyCat:Linux环境安装并部署MyCat_第7张图片

如上图所示,如果可以成功ping通,则连接成功,则宝塔面板(192.168.226.128:8888)也可以进入。

注意:宝塔面板默认的登录地址和登录的用户名、密码在安装完面板的时候会显示,如下图。

数据库中间件——MyCat:Linux环境安装并部署MyCat_第8张图片

(2).安装MySQL

若已经安装MySQL,请跳过这一步

进入宝塔面板,在左侧选择并进入软件商店页面,找到MySQL,点击右侧安装按钮,选择安装版本和安装模式即可(由于我已经安装了MySQL5.7,所以这里显示的不一样)。

数据库中间件——MyCat:Linux环境安装并部署MyCat_第9张图片

(3).打开端口

在左侧选择并进入安全页面,在放行端口分别输入3306和8066,输入注释并点击放行,下面的列表中会出现我们刚刚填写的数据,若状态为正常,则放行成功。

数据库中间件——MyCat:Linux环境安装并部署MyCat_第10张图片

(4).下载并安装MyCat

1.进入官网 http://www.mycat.org.cn/ 点击上方下载按钮

数据库中间件——MyCat:Linux环境安装并部署MyCat_第11张图片

这里我选择的是1.6.7.4版本

数据库中间件——MyCat:Linux环境安装并部署MyCat_第12张图片

进入Mycat-server-1.6.7.4-release目录

数据库中间件——MyCat:Linux环境安装并部署MyCat_第13张图片

选择linux版本,点击下载

数据库中间件——MyCat:Linux环境安装并部署MyCat_第14张图片

2.进入宝塔面板,在左侧选择并进入文件页面,选择要安装的目录,我这里选择的是在/www/server/下新建一个mycat目录。点击新建后会出现新建的目录。

数据库中间件——MyCat:Linux环境安装并部署MyCat_第15张图片

3.进入mycat目录,点击左上角上传按钮,选择刚刚下载完成的文件,点击开始上传。上传完成后,目录中会出现上传的文件。

数据库中间件——MyCat:Linux环境安装并部署MyCat_第16张图片

4.点击右侧解压按钮,修改一下解压出来的文件名,解压完成以后就会出现解压出来的文件(我这里已经提前解压完了)

数据库中间件——MyCat:Linux环境安装并部署MyCat_第17张图片

5.为了方便起见,进入/etc/profile并配置一下MyCat的变量,然后在控制台输入 source /etc/profile 使变量生效。

export MYCAT_HOME=/www/server/mycat/mycat
export PATH=$PATH:$MYCAT_HOME/bin

数据库中间件——MyCat:Linux环境安装并部署MyCat_第18张图片

6.配置完成后,如果在控制台输入 mycat 出现以下情况则配置成功

数据库中间件——MyCat:Linux环境安装并部署MyCat_第19张图片

(5).配置MyCat

1.在主机使用NaviCat或者直接在控制台 mysql -u root -p 进入mysql数据库,执行下列代码

drop database if exists mycat_test;
create database mycat_test character set utf8;
use mycat_test;
create table user(
   id int NOT NULL AUTO_INCREMENT,
   name varchar(50),
   age int,
   message varchar(50),
   PRIMARY KEY (`id`)
);
insert into user(name,age,message) values ('窃格瓦拉','36','打工时不可能打工的');
insert into user(name,age,message) values ('大力哥','42','大力才能出奇迹');
insert into user(name,age,message) values ('马哥','50','不充钱怎么变强?');
insert into user(name,age,message) values ('马爹','56','我不喜欢钱');

如下图所示,出现了mycat_test数据库,同时里面有一张有如下数据的user表,则测试数据添加成功

数据库中间件——MyCat:Linux环境安装并部署MyCat_第20张图片

2.配置server.xml

进入conf目录


1


65535
0
1
1

然后拉到最下面,找到节点,将name为user的节点先删去,修改name是root的节点

其中,user中的name是指连接MyCat的用户名,下面的password是连接MyCat的密码,下面的schemas必须对应schema.xml中节点中name的值,在这里使用TESTDB会导致一个小问题,我在这里先卖个关子。


    123456
    TESTDB

3.配置schema.xml

直接将配置文件改成如下所示

节点中,name必须对应server.xml的节点下name为schemas的值,在这里为TESTDB;dataNode的值为后面节点的name的值

节点中,name必须与节点的dataNode的值对应dataHost的值为后面节点的name的值database为物理数据库名,在这里为之前建的mycat_test。

节点中,name必须与节点的dataHost的值对应,在这里balance先填入0,即不进行读写分离。

节点中,填入MySQL数据库的URL、用户名和密码,在此访问的是本地数据库,因此填入127.0.0.1,如果访问本地数据库却填入外网ip地址的话有可能会出问题。




    
    
    
        select user()
        
        
    

节点说明内容:

name:节点名称,在上方dataNode标签中调用

maxCon:底层数据库的链接最大数

minCon:底层数据库的链接最小数

balance:值可以为0,1,2,3,分别表示对当前datahost中维护的数据库们的读操作逻辑

              0:不开启读写分离,所有的读写操作都在最小的索引号的writeHost(第一个writeHost标签)

              1:全部的readHost和备用writeHost都参与读数据的平衡,如果读的请求过多,负责写的第一个writeHost也分担一部分

              2:所有的读操作,都随机的在所有的writeHost和readHost中进行

              3:所有的读操作,都到writeHost对应的readHost上进行(备用writeHost不参加了),在集群中没有配置ReadHost的情况下,读都到第 一个writeHost完成

writeType:控制当前datahost维护的数据库集群的写操作

              0:所有的写操作都在第一个writeHost标签的数据库进行

              1:所有的写操作,都随机分配到所有的writeHost(mycat1.5完全不建议配置了)

dbtype:数据库类型(不同数据库配置不同名称,mysql)

dbDriver:数据库驱动,native,动态获取

switchType:切换的逻辑

              -1:故障不切换

               1:故障切换,当前写操作的writeHost故障,进行切换,切换到下一个writeHost;

slaveThreshold:标签中的用来检测后端数据库的心跳sql语句;本属性检查从节点与主节点的同步情况(延迟时间数),配合心 跳语句show slave status; 读写分离时,所有的readHost的数据都可靠

4.配置log4j2.xml

为了方便我们查看日志文件,在此将文件修改为debug级别。顺便说一句,日志文件会保存在logs文件夹中。

数据库中间件——MyCat:Linux环境安装并部署MyCat_第21张图片

至此,配置完成。

(5).启动并验证MyCat是否配置成功

输入mycat start启动mycat

数据库中间件——MyCat:Linux环境安装并部署MyCat_第22张图片

在Navicat中输入mycat信息,注意,这里的端口号是8066,即mycat默认端口号

数据库中间件——MyCat:Linux环境安装并部署MyCat_第23张图片

进入数据库,我这里出现了Unknown database的错误,原因就是前面的url我填入了192.168.226.128,导致mycat访问不到,具体原因我也不是很清楚,但是我们将它改为127.0.0.1,并使用mycat restart重启mycat服务即可解决问题。

数据库中间件——MyCat:Linux环境安装并部署MyCat_第24张图片

修改完成后,我们就能看到mycat中的表,但是双击表明会出现Table doesn't exist的问题,这是因为我们前面使用了TESTDB作为了MyCat逻辑库名,Navicat可能访问不到物理库mycat_test,那么,我们将之前两处逻辑库名改为mycat_test,重启mycat后即可解决问题。

数据库中间件——MyCat:Linux环境安装并部署MyCat_第25张图片

在这里就能看到物理库mycat_test的数据了,增删改能够使物理库的数据变动,大家可以自己尝试

数据库中间件——MyCat:Linux环境安装并部署MyCat_第26张图片

至此,基本的MyCat部署完成。

你可能感兴趣的:(数据库,mysql,中间件,mycat)