- 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
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/profile1.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.gz1.3. 修改配置文件
进入/root/mycat/conf目录,其中有三个配置文件:
- server.xml 定义用户以及系统相关变量,如端口等。
- schema.xml 定义逻辑库,表、分片节点等内容。
- rule.xml 定义分片规则。
通过vim server.xml命令修改用户信息,与MySQL区分:
1.3.2. 修改配置文件schema.xml#root为MySQL用户名 123456 #123456为密码TESTDB #TESTDB表示Mycat的逻辑库(不是物理库,是不存在的),它对应很多的主从数据库
通过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 标签属性说明:
1.3.3. 验证数据库访问情况
host:用于标识不同实例,一般writeHost我们使用*M1,readHost我们使用*S1
url:后端实例连接地址,如果是使用native的dbDriver,一般为address:port形式; 如果用JDBC或其他的dbDriver,则需要特殊指定。当使用JDBC时则可以这么写:jdbc:mysql://localhost:3306。
登录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分两种启动:控制台启动和后台启动。
1.4.1. 控制台启动
在虚拟机的Linux下,进入mycat安装路径:/usr/local/mycat/bin
执行./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是后台管理窗口的端口号
1.5.2. 登录数据窗口
#常用命令如下:
show database;
show @@help; 可以看到维护相关的命令。此登录方式用于通过 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介绍详解
Java相关栏目本月热门文章
- 1【Linux驱动开发】设备树详解(二)设备树语法详解
- 2别跟客户扯细节
- 3Springboot+RabbitMQ+ACK机制(生产方确认(全局、局部)、消费方确认)、知识盲区
- 4【Java】对象处理流(ObjectOutputStream和ObjectInputStream)
- 5【分页】常见两种SpringBoot项目中分页技巧
- 6一文带你搞懂OAuth2.0
- 7我要写整个中文互联网界最牛逼的JVM系列教程 | 「JVM与Java体系架构」章节:虚拟机与Java虚拟机介绍
- 8【Spring Cloud】新闻头条微服务项目:FreeMarker模板引擎实现文章静态页面生成
- 9JavaSE - 封装、static成员和内部类
- 10树莓派mjpg-streamer实现监控及拍照功能调试
- 11用c++写一个蓝屏代码
- 12从JDK8源码中看ArrayList和LinkedList的区别
- 13idea 1、报错java: 找不到符号 符号: 变量 log 2、转换成Maven项目
- 14在openwrt使用C语言增加ubus接口(包含C uci操作)
- 15Spring 解决循环依赖
- 16SpringMVC——基于MVC架构的Spring框架
- 17Andy‘s First Dictionary C++ STL set应用
- 18动态内存管理
- 19我的创作纪念日
- 20Docker自定义镜像-Dockerfile
热门相关搜索路由器设置 木托盘 宝塔面板 儿童python教程 心情低落 朋友圈 vim 双一流学科 专升本 我的学校 日记学校 西点培训学校 汽修学校 情书 化妆学校 塔沟武校 异形模板 西南大学排名 最精辟人生短句 6步教你追回被骗的钱 南昌大学排名 清朝十二帝 北京印刷学院排名 北方工业大学排名 北京航空航天大学排名 首都经济贸易大学排名 中国传媒大学排名 首都师范大学排名 中国地质大学(北京)排名 北京信息科技大学排名 中央民族大学排名 北京舞蹈学院排名 北京电影学院排名 中国戏曲学院排名 河北政法职业学院排名 河北经贸大学排名 天津中德应用技术大学排名 天津医学高等专科学校排名 天津美术学院排名 天津音乐学院排名 天津工业大学排名 北京工业大学耿丹学院排名 北京警察学院排名 天津科技大学排名 北京邮电大学(宏福校区)排名 北京网络职业学院排名 北京大学医学部排名 河北科技大学排名 河北地质大学排名 河北体育学院排名



