返回顶部
首页 > 资讯 > 数据库 >怎么安装部署MyCat
  • 168
分享到

怎么安装部署MyCat

2024-04-02 19:04:59 168人浏览 独家记忆
摘要

怎么安装部署MyCat?相信大部分人都还没学会怎么安装部署,为了让大家学会,给大家总结了以下内容,话不多说,一起往下看吧1、准备mycat部署环境系统IP主机名服务Centos 7.5192.168.20.

怎么安装部署MyCat?相信大部分人都还没学会怎么安装部署,为了让大家学会,给大家总结了以下内容,话不多说,一起往下看吧

1、准备mycat部署环境

系统IP主机名服务
Centos 7.5192.168.20.2Mysql01mysql 5.7.24
Centos 7.5192.168.20.3mysql02MySQL  5.7.24
Centos 7.5192.168.20.4mycatMycat

mycat的安装部署需要jdk1.7及以上版本,mysql建议是5.5及以上版本。

自行部署两台MySQL的主从,可以参考博文:MySQL高可用方案——双主(注:只需要参考博文做出主从效果即可,并不需要双主,也不需要keepalived来做高可用)。

2、安装jdk

[root@mycat ~]# java -version         #查看jdk版本是否合适
openjdk version "1.8.0_161"
OpenJDK Runtime Environment (build 1.8.0_161-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
#如果上述指令返回错误,可以执行下面的命令安装jdk环境
[root@mycat ~]# yum -y install java   

3、部署mycat

下载的mycat包,直接解压即可使用。

#下载并解压
[root@mycat src]# wget Http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
[root@mycat src]# tar zxf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/
#查看解压后的目录结构
[root@mycat src]# tree -L 1  /usr/local/mycat/
/usr/local/mycat/
├── bin
├── catlet
├── conf
├── lib
├── logs
└── version.txt

其中:

  • bin:启动目录;
  • lib:mycat自身的jar包或依赖的jar包的存放目录;
  • logs:mycat日志的存放目录,日志存放在logs/log中,每天一个文件;
  • conf:配置目录,用于存放配置文件
    • --server.xml:是Mycat服务器参数调整和用户授权的配置文件。
    • --schema.xml:是逻辑库定义和表以及分片定义的配置文件。
    • --rule.xml:  是分片规则的配置文件,分片规则的具体一些参数信息单独存放为文件,也在这个目录下,配置文件修改需要重启MyCAT。
    • --log4j.xml: 日志存放在logs/log中,每天一个文件,日志的配置是在conf/log4j.xml中,根据自己的需要可以调整输出级别为debug                           debug级别下,会输出更多的信息,方便排查问题。
    • --autopartition-long.txt,partition-hash-int.txt,sequence_conf.properties, sequence_db_conf.properties 分片相关的id分片规则配置文件

下面的图片描述了mycat最重要的3大配置文件:

怎么安装部署MyCat

4、修改mycat配置文件,以便针对后端数据库实现读写分离

1)修改server.xml文件
#指定client连接mycat的用户名及密码,此处的账号密码与MySQL数据库无关
[root@mycat mycat]# vim conf/server.xml    #定位到80行左右,修改如下
        <user name="mycat" defaultAccount="true">  #mycat为用户名
                <property name="passWord">pwd@123</property>   #此处为密码
                <property name="schemas">teset_mycat</property>    #此处为逻辑库名

                <!-- 表级 DML 权限设置 -->
                <!--            
                <privileges check="false">
                        <schema name="TESTDB" dml="0110" >
                                <table name="tb01" dml="0000"></table>
                                <table name="tb02" dml="1111"></table>
                        </schema>
                </privileges>           
                 -->
        </user>
2)修改schema.xml文件
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<!--下面的schema必须和第一个文件中的schema name(逻辑库名)一致。-->
        <schema name="teset_mycat" checkSQLschema="false" sqlMaxLimit="100" datanode="dn1">
        </schema>
        <dataNode name="dn1" dataHost="host1" database="test" />    <!--这里的database是指定要连接后端的哪个数据库,这里连接的是test库-->
                <!--下面是指定后端真实的MySQL主机,关于下面的balance值,有三个可选值,将在下面写下来-->
        <dataHost name="host1" maxCon="1000" minCon="10" balance="3"
                          writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
                <heartbeat>select user()</heartbeat>
                <!-- can have multi write hosts -->
                                <!--指定后端哪台主机用来写数据-->
                <writeHost host="hostM1" url="192.168.20.2:3306" user="root"
                                   password="123.com">
                        <!-- can have multi read hosts -->
                                                <!--指定后端哪台主机用来读数据-->
                        <readHost host="hostS2" url="192.168.20.3:3306" user="root" password="123.com" />
                </writeHost>
        </dataHost>
</mycat:schema>

注:上面提到的dataHost字段balance负载均衡类型,目前的取值有以下4 种:

  1. balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的 writeHost 上(默认值)。
  2. balance="1",全部的 readHost 与 stand by writeHost 参与 select 语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且 M1 与 M2 互为主备),正常情况下,M2,S1,S2 都参与 select 语句的负载均衡。
  3. balance="2",所有读操作都随机的在 writeHost、readhost 上分发。
  4. balance="3",所有读请求随机的分发到 wiriterHost 对应的 readhost 执行,writerHost 不负担读压力,注意 balance=3 只在 1.4 及其以后版本有,1.3 没有。

writeTyep字段有以下3中取值:

1、writeType="0", 所有写操作发送到配置的第一个 writeHost,第一个挂了切到还生存的第二个 writeHost,重新启动后已切换后的为准,切换记录在配置文件中:dnindex.properties 。
2、writeType="1",所有写操作都随机的发送到配置的 writeHost,1.5 以后废弃不推荐。switchType 属性

  • -1 表示不自动切换。
  • 1 默认值,自动切换。
  • 2 基于 MySQL 主从同步的状态决定是否切换。
3)测试mycat主机是否可以登录到后端两个数据库
#复制一个mysql命令
[root@mycat mycat]# scp root@192.168.20.2:/usr/local/mysql/bin/mysql /usr/local/bin/
#对后端两台数据库进行登录测试
[root@mycat mycat]# mysql -uroot -p123.com -h 192.168.20.2
[root@mycat mycat]# mysql -uroot -p123.com -h 192.168.20.3
#确保执行上述指令登录数据库时,可以登录成功。
#如果没有登录成功,则要考虑数据库的root用户是否有远程登录的权限,或者防火墙的问题。
4)由于上述配置文件中,要删除一些配置,如果不删除,则会造成启动失败,所以这里附上修改后的完整配置文件

server.xml文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://io.mycat/">
        <system>
        <property name="useSqlStat">0</property>  <!-- 1为开启实时统计、0为关闭 -->
        <property name="useGlobleTableCheck">0</property>  <!-- 1为开启全加班一致性检测、0为关闭 -->

                <property name="sequnceHandlerType">2</property>
                <property name="processorBufferPoolType">0</property>
                <property name="handleDistributedTransactions">0</property>

                <property name="useOffHeapFORMerge">1</property>
                <property name="memoryPageSize">1m</property>
                <property name="spillsFileBufferSize">1k</property>

                <property name="useStreamOutput">0</property>
                <property name="systemReserveMemorySize">384m</property>

                <property name="useZKSwitch">true</property>

<!--以上内容中,只是删除了一些注释行的内容,主要是下面-->
        </system>
        <user name="mycat" >
                <property name="password">pwd@123</property>
                <property name="schemas">teset_mycat</property>
        </user>
</mycat:server>

conf/schema.xml文件内容如下:

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

        <schema name="teset_mycat" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
        </schema>
        <dataNode name="dn1" dataHost="host1" database="test" />
        <dataHost name="host1" maxCon="1000" minCon="10" balance="3"
                          writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
                <heartbeat>select user()</heartbeat>
                <!-- can have multi write hosts -->
                <writeHost host="hostM1" url="192.168.20.2:3306" user="root"
                                   password="123.com">
                        <!-- can have multi read hosts -->
                        <readHost host="hostS2" url="192.168.20.3:3306" user="root" password="123.com" />
                </writeHost>
        </dataHost>
</mycat:schema>

5、启动mycat

  • ./mycat start 启动
  • ./mycat stop 停止
  • ./mycat console 前台运行
  • ./mycat install 添加到系统自动启动(暂未实现)
  • ./mycat remove 取消随系统自动启动(暂未实现)
  • ./mycat restart 重启服务
  • ./mycat pause 暂停
  • ./mycat status 查看启动状态
#创建命令软连接
[root@mycat mycat]# ln -sf /usr/local/mycat/bin/mycat /usr/local/bin/
#启动mycat
[root@mycat mycat]# mycat start   #更建议使用mycat console前台启动,如果有错误,就会直接输出到屏幕,方便排错
#待调试正常后,再使用mycat start后台启动即可。
Starting Mycat-server...
[root@mycat conf]# ss -lnp | grep 8066   #如果端口没有在监听,则表示启动失败,自行查看日志排查吧。
tcp    LISTEN     0      100      :::8066                 :::*                   users:(("java",pid=62070,fd=78))
#使用server.xml文件中定义的用户名及密码进行登录查看
[root@mycat conf]# mysql -umycat -ppwd@123 -h 192.168.20.4 -P 8066
mysql> show databases;   #下面的teset_mycat库对应的就是后端的test库
+-------------+
| DATABASE    |
+-------------+
| teset_mycat |
+-------------+
1 row in set (0.00 sec)
mysql> use teset_mycat
#库中所有的表数据和后端数据库是对应的
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| t1             |
+----------------+
1 row in set (0.00 sec)

mysql> select * from t1;
+------+------+
| id   | name |
+------+------+
|    1 | a    |
|    2 | b    |
|    3 | c    |
|    4 | d    |
+------+------+

以上就是安装部署MyCat的详细步骤了,看完之后是否有所收获呢?如果想了解更多相关内容,欢迎关注编程网数据库!

您可能感兴趣的文档:

--结束END--

本文标题: 怎么安装部署MyCat

本文链接: https://lsjlt.com/news/35782.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么安装部署MyCat
    怎么安装部署MyCat?相信大部分人都还没学会怎么安装部署,为了让大家学会,给大家总结了以下内容,话不多说,一起往下看吧1、准备mycat部署环境系统IP主机名服务Centos 7.5192.168.20....
    99+
    2024-04-02
  • mycat入门部署安装
    mycat是一种比较简单的中间件产品,可以帮助mysql进行分库,同时统一在一个逻辑库。 硬件环境:系统:centos 7.6数据库版本:5.7.19mycat:1.6..6.1 github上下载myca...
    99+
    2024-04-02
  • Mycat安装部署简单使用
    Mycat安装部署简单使用1. 软件准备Mycat:下载地址:https://github.com/MyCATApache/Mycat-download。下载界面图 1‑1 Mycat首页下载界面。任意选中RELEASE版...
    99+
    2021-03-09
    Mycat安装部署简单使用
  • 数据库中间件——MyCat部署安装
    关于mycat的链接:Mycat官网Mycat下载链接Mycat官方文档,百度网盘官方文档下载链接,提取码:f9nq。Mycat简略文档 可以在开始之前,阅读Mycat简略文档,对其有个大概了解。 注:My...
    99+
    2024-04-02
  • Redis怎么安装部署
    小编给大家分享一下Redis怎么安装部署,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、Redis是什么Redis:REmot...
    99+
    2024-04-02
  • php7.0怎么安装部署
    php7.0安装部署的方法:1、到PHP官网下载与本机系统对应的安装版本;2、将下载的zip文件解压到指定目录;3、打开命令行窗口,在“E:\php7”目录下运行“php -v”命令即可。本教程操作环境:Windows7系统、PHP7.0版...
    99+
    2023-05-14
    PHP7
  • MySQL Cluster7.2.4怎么安装部署
    本篇内容主要讲解“MySQL Cluster7.2.4怎么安装部署”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL Cluster7.2.4怎么安装部署...
    99+
    2024-04-02
  • Docker怎么安装部署RabbitMQ
    这篇文章主要讲解了“Docker怎么安装部署RabbitMQ”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Docker怎么安装部署RabbitMQ”吧!关于Docker关于Docker,百度...
    99+
    2023-06-19
  • mvn怎么安装及部署
    本文小编为大家详细介绍“mvn怎么安装及部署”,内容详细,步骤清晰,细节处理妥当,希望这篇“mvn怎么安装及部署”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.mvn 安装此命令构建 maven 项目并将项目文...
    99+
    2023-06-26
  • linux autofs怎么安装部署
    本篇内容主要讲解“linux autofs怎么安装部署”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux autofs怎么安装部署”吧!autofs是一种Linux系统守护进程,当检测到用...
    99+
    2023-07-04
  • MySQL 中间件Mycat部署
    什么是MyCat * 一个彻底开源的,面向企业应用开发的大数据库集群 * 支持事务、ACID、可以替代MySQL的加强版数据库 * 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群 * 一个融合内存缓存技术、NoS...
    99+
    2014-05-16
    MySQL 中间件Mycat部署 数据库入门 数据库基础教程 数据库 mysql
  • Docker中怎么安装mycat
    这篇文章主要讲解了“Docker中怎么安装mycat”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Docker中怎么安装mycat”吧!1.拉取镜像docker pull ...
    99+
    2023-06-27
  • Flume怎样安装部署
    这篇文章主要介绍了Flume怎样安装部署,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。环境:flume-ng-1.6.0-cdh6.7.0.tar.gzjdk 1.8下载安装...
    99+
    2023-06-03
  • MySQL怎么进行安装部署
    这篇文章将为大家详细讲解有关MySQL怎么进行安装部署,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。MySQL安装部署1.二进制安装1.清除残留软件rpm -q...
    99+
    2024-04-02
  • TDSQL怎么安装部署附图
    这篇文章将为大家详细讲解有关TDSQL怎么安装部署附图,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。分布式数据库(Tencent Distributed SQL,TDSQ...
    99+
    2024-04-02
  • Linux下GitLab怎么安装部署
    这篇文章主要为大家展示了“Linux下GitLab怎么安装部署”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下GitLab怎么安装部署”这篇文章吧。  一、GitLab 简介  现在,...
    99+
    2023-06-12
  • docker怎么离线安装部署
    要进行离线安装部署,首先需要在离线环境中准备好所需的Docker安装包和依赖项。以下是一种离线安装部署Docker的方法:1. 在在...
    99+
    2023-10-10
    docker
  • Linux下怎么安装部署Postfix
    本篇内容主要讲解“Linux下怎么安装部署Postfix”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux下怎么安装部署Postfix”吧!部署DNS服务器postfix根据域名和地址做一...
    99+
    2023-06-27
  • Docker中怎么安装部署RabbitMQ
    这篇文章主要介绍“Docker中怎么安装部署RabbitMQ”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Docker中怎么安装部署RabbitMQ”文章能帮助大家解决问题。安装部署RabbitMQ...
    99+
    2023-06-27
  • Linux中Redis怎么安装部署
    这篇文章主要介绍“Linux中Redis怎么安装部署”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux中Redis怎么安装部署”文章能帮助大家解决问题。1、 下载redis直接使用wget 拉...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作