centos7.4 myCat读写分离

Mycat介绍:

  • mycat是最近很火的一款国人发明的分布式数据库中间件,它是基于阿里的cobar的基础上进行开发的
  • 准备环境:
  • db01主   192.168.1.120 (安装mysql配置主)
  • db02备   192.168.1.147  (安装mysql配置从)
  • mycat     192.168.1.146 (安装 mycat 配置两个文件)
  • 主从同步配置(这里就不介绍了,先把主从同步做了,授权,防火墙关闭等)
  • java环境1.7以上 添加环境变量

搭建mycat

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     重新加载配置文件

查看centos7.4 myCat读写分离_第1张图片
 

 在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/

centos7.4 myCat读写分离_第2张图片

目录解释如下:

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

centos7.4 myCat读写分离_第3张图片

启动的时候有时候会报错 查看错误日志

查看 /usr/local/mycat/logs/wrapper.log

centos7.4 myCat读写分离_第4张图片

刚开始 我的配置文件错了,怎么也起不来,后来慢慢看日志发现配置文件错了,centos7.4 myCat读写分离_第5张图片

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

centos7.4 myCat读写分离_第6张图片

参数说明centos7.4 myCat读写分离_第7张图片

schema.xml中 dataHost 内可以定义多个 writeHost 和 readHost。但是,如果 writeHost 指定的后端数据库宕机,
那么这个 writeHost 绑定的所有 readHost 都将不可用。另一方面,由二这个 writeHost 宕机系统会自动的检测
到,并切换到备用的 writeHost 上去。

 

centos7.4 myCat读写分离_第8张图片

 

 

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

 

 

 

你可能感兴趣的:(数据库,linux)