MyCat入门篇-下载安装

下载

github或者mycat官网

从官网下载

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

github上下载

https://github.com/MyCATApache/Mycat-Server/releases

安装

MyCat是使用Java语言编写的,所以它的运行少不了JDK的支持,所以要保证首选安装好了JDK,然后再考虑安装MyCat.
关于JDK的安装,这里不不再赘述了,如果有不了解的童鞋,可以自行百度或者谷歌搜索一下:”JDK的安装“。

直接解压安装

解压即可,一般解压在/usr/local目录下面,命令如下:

tar -zxvf Mycat-Server-Mycat-server-1675-release.tar.gz -C /usr/local

解压完成后,在/usr/local目录下面会有一个mycat文件夹目录,这里面就是mycat的主程序所在目录。
里面有一些子目录和文件,现在把子目录和文件简单介绍一下:

  • bin目录:启动、停止mycat的相关命令都在这个目录下面
  • logs目录:mycat运行的日志就生成在这个目录下,这里包括启动的日志文件和运行过程中的日志文件两类。
  • conf目录:mycat相关配置文件所在的目录,这里包含很多配置文件。
  • lib目录:mycat运行的时候所依赖的jar包文件,都放在这个目录下面。
  • version.txtw文件:mycat的版本信息记录在这个文件中。
制作镜像来安装

通过docker镜像来启动mycat会更方便部署mycat,并且可以启动多个mycat实例,后续结合keepalive和HAproxy来构建mycat高可用集群相当的方便。
所以下面我们使用dockerfile来构建一个自己的mycat镜像。

准备mycat压缩包

通过下面的链接来下载对应版本的mycat安装包文件。然后放在本地某一个目录上,在构建镜像的时候,可以把下载好的安装包添加到镜像中去。
当然可以不下载,直接在dockerfile中指定下载的连接,然后直接下载到对应的镜像文件中去。但是我尝试了几次,这样构建的镜像比较慢,不如提前下载好安装包,然后通过ADD命令添加到镜像中去。
下载链接如下:
https://github.com/MyCATApache/Mycat-Server/releases

准备dockerfile文件

Dockerfile文件的名称就是”Dockerfile“,文件内容如下所示:把它放在本地某一个目录下面,这个目录下面也要放置下载好的mycat压缩包。

# 因为mycat运行需要jdk的支持,所以基于jdk的镜像来构建mycat的镜像。
FROM openjdk:8-jdk-stretch

# 把本机当前目录下面的mycat安装包,拷贝到容器中,并且解压到容器的指定目录。
ADD ./Mycat-server-1.6.7.5-release-20200422133810-linux.tar.gz /usr/local

# 声明卷目录,该目录可以被挂载到宿主机本地某个目录下。
VOLUME /usr/local/mycat/conf
VOLUME /usr/local/mycat/logs

# 暴露mycat的连接端口和管理端口。
EXPOSE 8066 9066

# 启动mycat服务。
CMD ["/usr/local/mycat/bin/mycat", "console"]
构建镜像

docker build命令构建镜像

docker build -t mycat:v1.6.7.5 .

通过上面的命令构建后,或生成一个镜像文件再你的本地

➜  ~ docker images | grep mycat
mycat                                                            v1.6.7.5                                         71a73d17af96        3 days ago          514MB
➜  ~

启动

下载安装后,就可以启动mycat了。启动的时候就是执行…/bin/xxx文件。启动文件如下:

root@mycat1:/usr/local/mycat/bin# ls -l /usr/local/mycat/bin/*
-rwxr-xr-x 1 root root   3658 Apr 15  2020 /usr/local/mycat/bin/dataMigrate.sh
-rwxr-xr-x 1 root root   1272 Apr 15  2020 /usr/local/mycat/bin/init_zk_data.sh
-rwxr-xr-x 1 root root  15701 Apr 22  2020 /usr/local/mycat/bin/mycat
-rwxr-xr-x 1 root root   2986 Apr 15  2020 /usr/local/mycat/bin/rehash.sh
-rwxr-xr-x 1 root root   2526 Apr 15  2020 /usr/local/mycat/bin/startup_nowrap.sh
-rwxr-xr-x 1 root root 140198 Apr 22  2020 /usr/local/mycat/bin/wrapper-linux-ppc-64
-rwxr-xr-x 1 root root  99401 Apr 22  2020 /usr/local/mycat/bin/wrapper-linux-x86-32
-rwxr-xr-x 1 root root 111027 Apr 22  2020 /usr/local/mycat/bin/wrapper-linux-x86-64
root@mycat1:/usr/local/mycat/bin#

但是在启动之前,我们需要做一些其他的修改,就是去修改mycat的配置文件,让其和后面它代理的MySQL关联起来,不然启动mycat的时候,会出现连接不到后端MySQL数据库的错误。

我们可以先看一下mycat的启动文件怎么使用。

root@mycat1:/usr/local/mycat/bin# ./mycat --help
Usage: ./mycat { console | start | stop | restart | status | dump }
root@mycat1:/usr/local/mycat/bin#

控制台直接启动的命令:/usr/local/mycat/bin/mycat console
后台启动mycat的命令如下:

  • 启动的命令就是:/usr/local/mycat/bin/mycat start
  • 停止的命令就是:/usr/local/mycat/bin/mycat stop
  • 重启的命令就是:/usr/local/mycat/bin/mycat restart

查看mycat的运行状态的命令就是:/usr/local/mycat/bin/mycat status

MyCat配置文件介绍

mycat的配置文件有很多,我们经常使用到的是:server.xml、schema.xml、rule.xml等配置文件。

server.xml

定义mycat系统的配置和mycat的登录用信息。

主要有两个标签

  • system:配置mycat系统的相关属性,包括:管理端口、连接端口、连接池的配置、支出的事务配置等。
  • user:配置mycat的用户相关的信息,包括登录mycat的时候使用的用户名、密码、权限信息等。

配置一个用户mycat,密码也是mycat。这个用户不是正在的MySQL数据库中的登录用户,这个是连接到mycat服务的时候使用的用户和密码。
在前端应用在连接到mycat的时候,配置的数据库连接信息就是配置的这里的账号和密码,而不是配置真正的MySQL数据库的账号和密码。

简单示例:

<user name="mycat">
		<property name="password">mycat</property>
		<property name="schemas">testdb</property><!-- 逻辑库名称,并不是真正的MySQL中的schema名称。这里定义为什么,在schema.xml文件中的schema标签就需要与这里对应上。 -->
		<!-- <property name="readOnly">true</property> --><!-- 只读用户的配置 -->
		<property name="benchmark">1000</property><!-- 限制该用户的连接数,如果设置为0表示不限制。默认不配置,也是不限制 -->
	</user>
schema.xml

定义数据库、连接信息
schema配置文件中主要包括逻辑库、表和表分片的规则、分片节点、mycat后面代理的真实的数据库的连接地址、账号和密码相关信息
简单示例:

	<schema name="testdb" checkSQLschema="true" sqlMaxLimit="100" dataNode="dn1" />
    
	<dataNode name="dn1" dataHost="localhost1" database="testdb" />
    
<dataHost name="localhost1" maxCon="1000" minCon="1" balance="3" writeType="1" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
		<heartbeat>select user()</heartbeat>
		
		<!-- 首选的写节点,如果首选的写节点宕机,那么该节点中的读节点也会认为宕机,处于不可用状态。自动切换为备用的写和备用的读。 -->
		<!-- can have multi write hosts -->
		<writeHost host="hostM1" url="localhost:3301" user="root" password="root">
			<!-- can have multi read hosts -->
			<readHost host="hostS1" url="localhost:3303" user="root" password="root" />
		</writeHost>
		
		<!-- 备选的写节点 -->
		<!-- can have multi write hosts -->
		<writeHost host="hostM2" url="localhost:3302" user="root" password="root">
			<!-- can have multi read hosts -->
			<readHost host="hostS2" url="localhost:3304" user="root" password="root" />
		</writeHost>

	</dataHost>
role.xml

水平分表的时候会用到该配置文件,涉及到把一个表中的数据如何水平拆分到各个数据库实例中。这里暂时不做水平拆分的验证,先不配置。


关于mycat的安装部署先介绍到这里,接下来我会给大家分享mycat的实际使用示例。包括和MySQL集成在一起做读写分离、垂直拆分、水平拆分等。


微信搜索“coder-home”或扫一扫下面的二维码,
关注公众号,第一时间了解更多干货分享,还有各类视频教程资源。扫描它,带走我。

在这里插入图片描述


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值