MyCAT+MySQL搭建

Mycat安裝部署html

1下載jdk: http://www.oracle.com/technetwork/java/javase/archive-139210.html,建議用7就好前端

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

解壓包:tar –zxvf jdk-7u55-linux-i586.tar.gzmysql

包文件:http://down.51cto.com/data/2281695linux

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

添加環境變量:sql

Vim /etc/profile數據庫

exportJAVA_HOME=/usr/local/jdkvim

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)

若啓動報錯話:

wKiom1gkimjQfB_YAAAS-y5Tt2k459.png-wh_50

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

wKioL1gkisjxGGcCAAALC-w71s8603.png-wh_50

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

wKiom1gkiwizWZmfAABsMYNBdag274.png-wh_50

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

Encountered an error running main:java.lang.ExceptionInInitializerError

wKioL1gki2Tw8C_TAAFXOMJdTR4087.png-wh_50

建立連接:

#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

wKiom1gki8jylOLpAABXtcvFvvQ890.png-wh_50

啓動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,須要增長內存

一、        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

一、             添加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或者其餘值

wKioL1gkjDSSOP7AAAF8xfUfpaA552.png-wh_50

# conf/server.xml   #用來定義系統相關變量

XML的格式就是各種標籤

註釋標籤:<!—

…..

….

-->

定義服務配置範圍標籤:

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

</mycat:server>

#system標籤:

這個標籤用來框定系統配置範圍,用來保存幾乎全部mycat須要的系統配置信息(其在代碼內直接的映射類爲SystemConfig )

#property:用來定義服務的具體參數

#user:用來設定一個用戶的權限相關

######################自定義個前端的應用鏈接用戶

wKiom1gkjKvBheH0AADaWsbWQ54607.png-wh_50

wKioL1gkjOORR4tWAAF7b_xCku0612.png-wh_50


#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 

相關文章
相關標籤/搜索