栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Mycat的安装与启动

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mycat的安装与启动

  • 1. Mycat的安装与启动
    • 1.1. 配置JDK(待)
    • 1.2. 安装Mycat
      • 1.2.1. 下载解压即可
    • 1.3. 修改配置文件
      • 1.3.1. 修改配置文件server.xml
      • 1.3.2. 修改配置文件schema.xml
      • 1.3.3. 验证数据库访问情况
    • 1.4. 启动服务
      • 1.4.1. 控制台启动
      • 1.4.2. 后台启动
    • 1.5. 登录
      • 1.5.1. 登录后台管理窗口
      • 1.5.2. 登录数据窗口

上一篇: 数据库中间件Mycat介绍详解

1. Mycat的安装与启动

Mycat在安装前必须已经部署好数据库集群。
目前上面已完成主从复制。
注意:Docker官网以前做过Mycat的镜像:docker.io/fify/Mycat,但版本比较老。
如果你想试试,可以通过docker下载镜像:docker pull fify/Mycat

1.1. 配置JDK(待)

Mycat是基于Java,因此需要安装配置JDK。
注意:不是在Docker容器中安装,而是在虚拟机Linux上安装。

(1)安装之前先查看一下有无系统自带JDK

rpm -qa |grep java
rpm -qa |grep jdk
rpm -qa |grep gcj

#如果有就使用批量卸载命令

rpm -qa | grep java | xargs rpm -e --nodeps 

(2)直接yum安装1.8.0版本openjdk

yum install java-1.8.0-openjdk* -y

注:一般centos7.4 中jdk默认安装位置:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
但并非绝对,如果不知道JDK安装在哪里,接下来通过命令一步步找出:
第1步:which java 查询到的是java的执行路径,不是安装路径
第2步:ls -lrt /usr/bin/java
第3步:ls -lrt /etc/alternatives/java

路径:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/jre/bin/java

(3)查看版本

java -version


(4)配置环境变量
编辑vim /etc/profile,添加以下内容:

#java environment
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/jre/bin/java
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

(5)重启配置文件生效

source /etc/profile
1.2. 安装Mycat 1.2.1. 下载解压即可

#切换目录

cd /usr/local

#下载Mycat release1.6.7.6到当前目录

wget http://dl.mycat.org.cn/1.6.7.6/20201126013625/Mycat-server-1.6.7.6-release-20201126013625-linux.tar.gz

#解压conf目录到当前目录,因为使用docker直接挂载conf目录会报错,Mycat启动时需要依赖conf目录中的文件。

tar -zxvf Mycat-server-1.6.7.6-release-20201126013625-linux.tar.gz

1.3. 修改配置文件

进入/root/mycat/conf目录,其中有三个配置文件:

  • server.xml 定义用户以及系统相关变量,如端口等。
  • schema.xml 定义逻辑库,表、分片节点等内容。
  • rule.xml 定义分片规则。

1.3.1. 修改配置文件server.xml

通过vim server.xml命令修改用户信息,与MySQL区分:

	#root为MySQL用户名
	123456 #123456为密码
	TESTDB #TESTDB表示Mycat的逻辑库(不是物理库,是不存在的),它对应很多的主从数据库

1.3.2. 修改配置文件schema.xml

通过vim schema.xml命令修改数据库节点信息
删除标签间的表信息,标签只留一个,标签只留一个,
只留一对。







	
	select user()
	
	
	    
		
	

schema.xml文件详解:https://www.cnblogs.com/kingsonfu/p/10626544.html

  • 用于定义mycat实例中的逻辑库(虚拟的),mycat可以有多个逻辑库,每个逻辑库可以有自己的相关配置,如果不配置schema标签,所有表配置会属于同一个默认的逻辑库。
    如:

	

以上是配置了两个逻辑库,就如同在mysql中定义了两个数据库:USERDB和ORDERDB。
查询数据是切换到对应的逻辑库进行。

schema标签属性说明:
name:逻辑数据库的名称。
checkSQLschema:true加库名,如:select * from USERDB.tb_user;
false不加库名,如:select * from tb_user;
建议设置为false。
sqlMaxLimit:设置为某个数值表示取前N条数据,每条执行SQL语句都加上limit语句。
如:设值为100,执行select * from USERDB.tb_user;等效执行select * from
USERDB.tb_user limit 100; 。
不加则显示表中所有数据。
datanode:为逻辑库起个节点名。

  • 定义逻辑表
    table标签属性说明:
    name:定义逻辑表表名,同一个标签中定义的必须唯一。
    dataNode:定义当前逻辑表所属dataNode。
  • 定义mycat中的数据节点,也就是我们通常所说的数据分片。
    一个dataNode标签就是一个独立的数据分片。
    示例:

    示例使用名为localhost1数据库实例上的db1物理数据库,这就组成一个数据分片,使用名字dn1识别这个分片。

dataNode标签属性说明:
name:定义数据节点的名字,要唯一,我们需要在table标签上用这个名字用来建议逻辑与分片对应的关系。
dataHost:定义该分片属于哪个数据库实例的。属性值是引用dataHost标签上定义的name属性。

  • 定义了具体的数据库实例、读写分离配置和心跳语句,也是mycat最底层的标签。

示例:


    select user()
    
        
    
    

dataHost标签属性说明:
name:唯一标识dataHost标签,供dataNode标签使用。
maxCon:指定每个读写实例连接池的最大连接数。
minCon:最小连接数。
balance:负载均衡类型,具有以下4种:
a. 不开启读写分离机制,所有读操作都发送到当前可用的writeHost上。
b. 全部读写都参与select语句的负载均衡。
c. 所有读操作都随机在writeHost、readHost上分发。
d. 所有读请求随机的分发到writeHost对应的readHost执行,writeHost不负担读压力。
writeType:负载均衡写操作类型,具有2种:
a. 所有写操作发送到配置的第一个writeHost
b. 已废弃
dbType:指定后端连接的数据库类型,目前支持mysql协议,还有mongodb,oracle,spark等
dbDriver:指定连接后端数据库使用的Driver,目前可选的值有native和JDBC。

  • 指明用于和后端数据库进行心跳检查的语句。
    mysql可使用select user()
    order可使用select 1 from dual
  • 指定后端数据库的相关配置给mycat,用于实例化后端连接池。
    唯一不同的是,writeHost指定写实例,readHost指定读实例。
    在一个dataHost内可以定义多个writeHost和readHost,但是,如果writeHost指定的后端数据库宕机,那个这个writeHost绑定的所有readHost都将不可用。
    另一方面,由于这个writeHost宕机系统会自动的检测到,并切换到备用的writeHost上去。

writeHost 标签属性说明:
host:用于标识不同实例,一般writeHost我们使用*M1,readHost我们使用*S1
url:后端实例连接地址,如果是使用native的dbDriver,一般为address:port形式; 如果用JDBC或其他的dbDriver,则需要特殊指定。当使用JDBC时则可以这么写:jdbc:mysql://localhost:3306。

1.3.3. 验证数据库访问情况

登录mysql-master后执行:

mysql -uroot -p123456 -h 192.168.26.130 -P 3306


登录mysql-slave后执行:

mysql -uroot -p123456 -h 192.168.26.130 -P 3307


#如远程访问报错,请建对应用户

grant all privileges on *.* to root@'缺少的host' identified by '123456'; 
1.4. 启动服务

Mycat分两种启动:控制台启动和后台启动。
在虚拟机的Linux下,进入mycat安装路径:/usr/local/mycat/bin

1.4.1. 控制台启动

执行./mycat console (推荐,能看到日志)

1.4.2. 后台启动

执行./mycat start

为了能第一时间看到启动日志,方便定位问题,我们选择控制台启动。

1.5. 登录 1.5.1. 登录后台管理窗口

此登录方式用于管理维护 Mycat,一般是管理员登录使用,我们使用Mycat即可,因此不需要用此登录。

mysql -uroot -p123456 -P 9066 -h 192.168.26.130 

说明:-P 9066是后台管理窗口的端口号
#常用命令如下:
show database;
show @@help; 可以看到维护相关的命令。

1.5.2. 登录数据窗口

此登录方式用于通过 Mycat 查询数据,我们选择这种方式访问 Mycat

mysql -uroot -p123456 -P 8066 -h 192.168.26.130

说明:登录Mycat后,界面与MySQL很相似,但注意仔细看。

查看数据库:

查看库中表:

往tb_user中添加一条记录:

desc tb_user;


添加一条记录:

查看:

通过Navicat查看主从库:

为什么没有TESTDB?因为它是Mycat中的逻辑库,对应的是MySQL中的db1数据库。
操作Mycat中的TESTDB就是在操作MySQL中的db1。

主库中已添加一条记录:

查看从库中是否已同步:

上一篇:数据库中间件Mycat介绍详解

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/865539.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号