首页 > 代码库 > MyCAT+MySQL搭建

MyCAT+MySQL搭建

Mycat安装部署

1下载jdk: http://www.oracle.com/technetwork/java/javase/archive-139210.html,建议用7就好

jdk-7u55-linux-i586.tar.gz

解压包:tar –zxvf jdk-7u55-linux-i586.tar.gz

存放在/usr/local:mv jdk1.7.0_55 /usr/local/jdk

添加环境变量:

Vim /etc/profile

exportJAVA_HOME=/usr/local/jdk

exportJRE_HOME=${JAVA_HOME}/jre

exportCLASSPATH=.:${JAVA_HOME}/lib:${jre_home}/lib

exportPATH=${JAVA_HOME}/bin:$PATH

执行生效: source /etc/profile

vim /etc/environment environment

export_JAVA_OPTIONS="-Xms64m -Xmx64m -Xmn32m"

执行生效:source /etc/

检查/usr/bin/java是否已经存在链接

  #ll/usr/bin/java  若存在删除,rm –rf/usr/bin/java

添加新链接:ln –s /usr/local/jdk/bin/java /usr/bin/

测试是否OK

# java -version

Picked up _JAVA_OPTIONS: -Xms64m -Xmx64m-Xmn32m

java version "1.7.0_55"

Java(TM) SE Runtime Environment (build1.7.0_55-b13)

Java HotSpot(TM) Client VM (build24.55-b03, mixed mode)

若启动报错话:

技术分享

yum install glibc.i686 -y

##############JDK安装完成。

2、安装MyCat

添加mycat用户,并设置密码

#useradd mycat

#passwd mycat

 

下载mycat建议使用1.5版本

Mycat-server-1.5.1-RELEASE-20160405120037-linux.tar.gz

解压到/usr/local目录下

#tar –zxvf Mycat-server-1.5.1-RELEASE-20160405120037-linux.tar.gz–C /usr/local/

定义所属的用户和主

Chown –R mycat.mycat /usr/local/mycat

添加mycat用户,并设置密码

#useradd mycat

#passwd mycat

 

修改配置文件:

vim/usr/local/mycat/conf/wrapper.conf

技术分享

wrapper.java.command=/usr/local/jdk/bin/java

技术分享

[Err] 1064 -com.alibaba.druid.sql.parser.ParserException: syntax error, expect RPAREN, actualERROR DURATION

Encountered an error running main:java.lang.ExceptionInInitializerError

技术分享

创建链接:

#ln –s /usr/local/mycat/bin/mycat /usr/bin/

启动mycat

#mycat start

支持的参数:

mycat --help

Usage: /usr/bin/mycat { console | start |stop | restart | status | dump }

启动过程可能有问题,主要查看日志:/usr/local/mycat/logs/ wrapper.log,可以开启debug功能,或者在启动时候执行#mycatconsole查看执行过程

添加本地解析:

# [root@data3 logs]# hostname

data3

#vim /etc/hosts#写自己本机IPHOSTNAME

再次启动基本没问题:mycat简单搭建完毕:

#mycat start

# ps -ef |grep mycat

查看进程状态

#ps faux |grep mycat

端口开启(同时打开防火墙)

#netstat –ant |grep 8066

测试:

#mysql -utest -ptest –h192.168.28.71 -P8066 –DTESTDB

其中8066mycat的监听端口,其中-u-p-h分别是用户名,密码和主机,-D是连接的逻辑库

####登录的用户名和密码是mycat默认提供的,只能读模式,配置文件在vim /usr/local/mycat/conf/server.xml

技术分享

启动mycat报错信息,主要是由于没修改这个配置文件信息:

1Error: Could notcreate the Java Virtual Machine.

INFO  | jvm 4    | 2016/05/18 01:33:03 |Error: A fatal exception has occurred. Program will exit

 

大概原因,就是java堆内存不足以运行JVM,需要增加内存

1、        Linux修改环境变量 vim/etc/environment

增加此行:export  _JAVA_OPTIONS="-Xms64m -Xmx64m -Xmn32m"

其中的64m表示使用64M的内存。-Xms是堆的最小大小,-Xmx是堆的最大值,-Xmn是堆中的新生代最小值。Xmn中的值不能超过总的堆内存大小

知识普及:

Xmx:设置JVM最大可用内存

Xms:设置JVM初始化内存

Xmn:设置年年轻代内存大小,整个JVM内存大小=年轻代大小+年老代大小+持久化大小,持久代一般固定大小为64M,所以增的年轻代后,将会减小年老代大小,此值对系统性能影响较大,官方推选配置为整个堆的3/8

Xss:设置每个线程的堆栈大小

Source /etc/environment

1、             添加JDK的环境变量:vim /etc/profile 添加完source /etc/profile 执行生效

exoprt JAVA_HOME=/usr/local/mycat/jdk

export JRE_HOME=${JAVA_HOME}/jre

exportCLASSPATH=.:${JAVA_HOME}/lib:${jre_home}/lib

export PATH=${JAVA_HOME}/bin:$PATH

 

3、执行过程还报错:

jvm 1   | WrapperSimpleApp: Encountered an error running main:java.lang.OutOfMemoryError: Direct buffer memory

jvm 1   | java.lang.OutOfMemoryError: Direct buffer memory

修改mycat的配置文件:

Vim /usr/local/mycat/conf/ wrapper.conf

启动前,一般需要修改JVM配置参数,默认下行的内容为2G4G,可根据本机配置情况修改为512M或者其他值

技术分享

# conf/server.xml   #用来定义系统相关变量

XML的格式就是各类标签

注释标签:<!—

…..

….

-->

定义服务配置范围标签:

<mycat:server xmlns:mycat=”http://org.opencloudb/”>

</mycat:server>

#system标签:

这个标签用来框定系统配置范围,用来保存几乎所有mycat需要的系统配置信息(其在代码内直接的映射类为SystemConfig )

#property:用来定义服务的具体参数

#user:用来设定一个用户的权限相关

######################自定义个前端的应用连接用户

技术分享

技术分享


#maxCon:一个读写实例链接迟的最大连接数

#minCon:一个读写实例链接迟的最小连接数,初始化连接池的大小

#balance:负载均衡类型:0代表不开启读写分离机制,只使用writeHost;1代表readOnlywriteHost分担请求模式, 2 代表随机分配读请求和1类似3 代表只由readHost来承担读请求

#writeType: 负载均衡类型:0 代表发到第一个writeHost,挂了后切到还生存的第二个writeHost,重新启动后以切换后的为准,也就是不漂回;1 代表写操作随机发送到writeHost,这样不安全;

dbType:后端数据库类型

#switch Type:切换类型:-1代表不切换,1代表自动切换,2代表基于主从同步状态决定是否切换

#slave Threshold#SLAV读的安全边界,如果seconds_behind_master大于这个值,这台slave会被临时剔除,以免被读

#heartbeat:包含一个语句,用语句执行成功与否来判定数据库的可用性

# conf/rule.xml    #用来定义分片规则

定义了一个 mod-long 的分片规则,对 id 列进行分片,使用 mod-long 算法;(默认)


#####注意:

ML中定义的标签有顺序,如果不按照顺序进行配置,会报错。

比如 schema.xml 中的顺序为

·       1.定义 schema

·       2.定义 dataNode

·       3.定义 dataHost

如果不按顺序,会无法启动mycat,并且 mycat.log 中会报错

*****************到此结束,重新启动mycat,根据之前定义好的逻辑库库名和表名在中间层添加。使用在配置文件中定义的用户名,此用户名主要提供给前端应用使用。添加定义好的表名,若添加不存在的表报错: optable not in schema----AA

# mysql -h192.168.28.71 -P8066 -uaaa –paaa -Dcctest 







本文出自 “DBSpace” 博客,请务必保留此出处http://dbspace.blog.51cto.com/6873717/1871636

MyCAT+MySQL搭建