1.下载 可以去官网看看http://www.mycat.io
这个是版本地址 https://github.com/MyCATApache/Mycat-download
Mycat 需要安装JDK 1.7 或者以上版本。
yum install java -y 源码安装源码安装
JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PAT
添加环境变量 vim /etc/profile 我的是1.8版本
source /etc/profile 重新加载配置文件
在148服务器执行 我下载的是1.5的版本
wget https://raw.githubusercontent.com/MyCATApache/Mycat-download/master/1.5-RELEASE/Mycat-server-1.5.1-RELEASE-20161130213509-mac.tar.gz
1.6的
https://raw.githubusercontent.com/MyCATApache/Mycat-download/master/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
tar xvf Mycat-server-1.5.1-RELEASE-20161130213509-mac.tar.gz -C /usr/local/
解压了,配置两个文件夹就可以,我这只是用到了读写分离(mycat更牛的地方可能实在分库分表)
添加mycat用户
[root@yc local]# useradd mycat
[root@yc local]# chown -R mycat.mycat /usr/local/mycat/
目录解释如下:
bin 程序目录,存放了window版本和linux版本,除了提供封装成服务的版本之外,也提供了nowrap的shell脚本命令,方便大家选择和修改,进入到bin目录:
Linux下运行:./mycat console,首先要chmod +x *
注:mycat支持的命令{ console | start | stop | restart | status | dump }
conf目录下存放配置文件,server.xml是Mycat服务器参数调整和用户授权的配置文件,schema.xml是逻辑库定义和表以及分片定义的配置文件,rule.xml是分片规则的配置文件,分片规则的具体一些参数信息单独存放为文件,也在这个目录下,配置文件修改,需要重启Mycat或者通过9066端口reload。
lib目录下主要存放mycat依赖的一些jar文件。
日志存放在logs/mycat.log中,每天一个文件,日志的配置是在conf/log4j.xml中,根据自己的需要,可以调整输出级别为debug,在debug级别下,会输出更多的信息,方便排查问题。
注意:Linux下部署安装MySQL,默认不忽略表名大小写,需要手动到/etc/my.cnf 下配置 lower_case_table_names=1 使Linux环境下MySQL忽略表名大小写,否则使用MyCAT的时候会提示找不到表的错误!
修改配置文件 vim /usr/local/mycat/conf/server.xml
druidparser
mycatroot
ssc
user
ssc
true
配置 schema vim /usr/local/mycat/conf/schema.xml
select user()
添加mycat的环境变量
vim /etc/profile 添加
MYCAT_HOME=/usr/local/mycat PATH=$MYCAT_HOME/bin:$PATH
执行 source /etc/profile 命令,使环境变量生效。
启动服务mycat服务 mycat的端口是8066 直接输入mycat会出来他的命令
mycat start #启动
查看 netstat -antp |grep 8066
启动的时候有时候会报错 查看错误日志
查看 /usr/local/mycat/logs/wrapper.log
刚开始 我的配置文件错了,怎么也起不来,后来慢慢看日志发现配置文件错了,
INFO | jvm 1 | 2018/11/14 16:57:16 | Caused by: org.xml.sax.SAXParseException; lineNumber: 10; columnNumber: 100; 元素类型 "dataHost" 必须由匹配的结束标记 "" 终止。
INFO | jvm 1 | 2018/11/14 16:57:16 | at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
INFO | jvm 1 | 2018/11/14 16:57:16 | at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177)
INFO | jvm 1 | 2018/11/14 16:57:16 | at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
INFO | jvm 1 | 2018/11/14 16:57:16 | at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
INFO | jvm 1 | 2018/11/14 16:57:16 | at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1472)
INFO | jvm 1 | 2018/11/14 16:57:16 | at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1749)
INFO | jvm 1 | 2018/11/14 16:57:16 | at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2967)
INFO | jvm 1 | 2018/11/14 16:57:16 | at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
INFO | jvm 1 | 2018/11/14 16:57:16 | at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)
INFO | jvm 1 | 2018/11/14 16:57:16 | at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:842)
INFO | jvm 1 | 2018/11/14 16:57:16 | at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771)
INFO | jvm 1 | 2018/11/14 16:57:16 | at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
INFO | jvm 1 | 2018/11/14 16:57:16 | at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243)
INFO | jvm 1 | 2018/11/14 16:57:16 | at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
INFO | jvm 1 | 2018/11/14 16:57:16 | at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:121)
INFO | jvm 1 | 2018/11/14 16:57:16 | at org.opencloudb.config.util.ConfigUtil.getDocument(ConfigUtil.java:114)
INFO | jvm 1 | 2018/11/14 16:57:16 | at org.opencloudb.config.loader.xml.XMLSchemaLoader.load(XMLSchemaLoader.java:104)
INFO | jvm 1 | 2018/11/14 16:57:16 | ... 13 more
STATUS | wrapper | 2018/11/14 16:57:18 | <-- Wrapper Stopped
连接测试
mysql -umycatroot -pmycatroot -P8066 -h192.168.1.146
在schema.xml中 dataHost 内可以定义多个 writeHost 和 readHost。但是,如果 writeHost 指定的后端数据库宕机,
那么这个 writeHost 绑定的所有 readHost 都将不可用。另一方面,由二这个 writeHost 宕机系统会自动的检测
到,并切换到备用的 writeHost 上去。
NoSQL=Not Only SQL,目前已经存在很多的 NoSQL 数据库,
比如 MongoDB、Redis、Riak、HBase、Cassandra 等等。每一个都拥有以下几个特忓中的一个:
不再使用 SQL 语言,比如 MongoDB、Cassandra 就有自己的查语言
通常是开源顷目
为集群运行耄生
弱结构化——不会严格的限制数据结构类型
NoSQL 可仌多体上分为 4 个种类:Key-value、Document-Oriented、Column-Family Databases 仌及
Graph-Oriented Databases
7.7 MongoDB
配置支持 Mongodb
mysql -h127.0.0.1 -umycatroot -pmycatroot -P9066 show @@datasource;
mysql -h127.0.0.1 -umycatroot -pmycatroot -P8066
show @@help; 查看帮助
reload @@config; 更新配置文件
show @@version ; 查看版本
show @@connection ; 查看连接信息
show @@backend; 查看后端连接状态
show @@cache; 查看 mycat 缓存
show @@datasource; 查看数据状态,配置的读写服务器,如果配置了主从,或者多主可以切换
清除缓存 命令: reload@@user_stat
端口号: 该命令工作在 9066 端口,用来将客户端执行
show @@sql ; 查看执行的sql
show @@sql.sum ; 查看执行的sql的统计信息
show @@slow.success ;
show @@sql.slow ;
reload @@sqlslow=0 ; 设置慢sql 是的这条命介就是刚才提到的'如何设定慢 SQL' 时间阈值的命令
1.6配置
server.xml 去掉4个的注释
65535
0
1
1
schema.xml
select user()
如果报错修改 配置 wrapper.conf
wrapper.java.additional.3=-XX:MaxPermSize=1024M
wrapper.java.additional.5=-XX:MaxDirectMemorySize=4G
# Initial Java Heap Size (in MB)
wrapper.java.initmemory=512
# Maximum Java Heap Size (in MB)
wrapper.java.maxmemory=512