MyCat教程(一)-MyCat初体验
文章目录
1.MyCat是什么
一个彻底开源的,面向企业应用开发的大数据库集群
支持事务、ACID、可以替代MySQL的加强版数据库
一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群
一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server
结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品
一个新颖的数据库中间件产品
2.MyCat能做什么
突然想先~~~(* ̄︶ ̄) !
2.1数据库读写分离
2.2数据分片
垂直拆分(分库)、水平拆分(分表)、垂直+水平拆分(分库分表)
2.3多数据源整合
3.MyCat原理
Mycat 的原理中最重要的一个动词是“拦截”,它拦截了用户发送过来的 SQL 语句,首先对 SQL语句做了一些特定的分析:如分片分析、路由分析、读写分离分析、缓存分析等,然后将此 SQL 发往后端的真实数据库,并将返回的结果做适当的处理,最终再返回给用户。
这种方式把数据库的分布式从代码中解耦出来,程序员察觉不出来后台使用 Mycat 还是MySQL。
4.MyCat安装
4.1 Java环境、MyCat下载
本次实验安装在CentOS7系统环境,MyCat基于Java开发,so 需要先安装Java环境(我安装的jdk11版本),至于如何,嗯~~安装你懂得~~~(手动滑稽)!
MyCat官网:http://www.mycat.org.cn/
MyCat GitHub下载地址: https://github.com/MyCATApache/Mycat-Server/releases
本次安装版本:Mycat-server-1675-release
下载弄到服务器中,先来一顿解压重命名骚操作,然后移动到 /usr/local 目录。(解压即可,重命名个人习惯)
[root@localhost software]# tar -zxf Mycat-server-1.6.7.5-release-20200410174409-linux.tar.gz [root@localhost software]# mv mycat/ mycat_1.6.7.5 [root@localhost software]# mv mycat_1.6.7.5/ /usr/local/ [root@localhost mycat_1.6.7.5]# cd /usr/local/mycat_1.6.7.5/ [root@localhost mycat_1.6.7.5]# ll 总用量 12 drwxr-xr-x. 2 root root 190 12月 28 22:21 bin drwxrwxrwx. 2 root root 6 10月 22 2019 catlet drwxrwxrwx. 4 root root 4096 12月 28 22:21 conf drwxr-xr-x. 2 root root 4096 12月 28 22:21 lib drwxrwxrwx. 2 root root 6 4月 8 2020 logs -rwxrwxrwx. 1 root root 227 4月 10 2020 version.txt
重点关注: bin 、conf 目录:
bin目录:可执行文件目录
conf: 配置文件目录
4.2 修改server.xml文件
server.xml 是配置Mycat数据库中间件连接信息:
vim conf/server.xml 修改前: <user name="root" defaultAccount="true"> <property name="password">123456</property> <property name="schemas">TESTDB</property> <property name="defaultSchema">TESTDB</property> <!--No MyCAT Database selected 错误前会尝试使用该schema作为schema,不设置则为null,报错 --> <!-- 表级 DML 权限设置 --> <!-- <privileges check="false"> <schema name="TESTDB" dml="0110" > <table name="tb01" dml="0000"></table> <table name="tb02" dml="1111"></table> </schema> </privileges> --> </user> 修改后: <user name="mycat"> <property name="password">123456</property> <property name="schemas">mycat</property> <!-- <property name="readOnly">true</property> --> <property name="defaultSchema">mycat</property> </user>
4.2 修改server.xml文件
schema.xml 是MyCat配置物理数据库的配置文件:
vim conf/schema.xml 修改后: <?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat="http://io.mycat/"> <schema name="mycat" checkSQLschema="true" sqlMaxLimit="100" randomDataNode="dn1"> <table name="mytbl" dataNode="dn1" /> </schema> <dataNode name="dn1" dataHost="host1" database="mycat" /> <dataHost name="host1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <writeHost host="hostM1" url="jdbc:mysql://172.17.0.4:3306" user="root" password="root"> </writeHost> </dataHost> </mycat:schema>
4.3启动测试MyCat
进入 bin 目录:
启动命令: 控制台启动(方便查看日志) ./mycat console
后台启动: ./mycat start
关闭命令: ./mycat stop
查看日志命令: tail -f /usr/local/mycat_1.6.7.5/logs/mycat.log
启动看到如下日志标识启动成功:
[root@localhost bin]# ./mycat console Running Mycat-server... wrapper | --> Wrapper Started as Console wrapper | Launching a JVM... jvm 1 | Java HotSpot(TM) 64-Bit Server VM warning: Option AggressiveOpts was deprecated in version 11.0 and will likely be removed in a future release. jvm 1 | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org jvm 1 | Copyright 1999-2006 Tanuki Software, Inc. All Rights Reserved. jvm 1 | jvm 1 | MyCAT Server startup successfully. see logs in logs/mycat.log
连接mycat:
查询数据:
MyCat最基础的安装配置完成!搞完收工。2020年12月28日23:01:08