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)
若啓動報錯話:
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#寫本身本機IP和HOSTNAME
再次啓動基本沒問題:mycat簡單搭建完畢:
#mycat start
# ps -ef |grep mycat
查看進程狀態
#ps faux |grep mycat
端口開啓(同時打開防火牆)
#netstat –ant |grep 8066
測試:
#mysql -utest -ptest –h192.168.28.71 -P8066 –DTESTDB
其中8066是mycat的監聽端口,其中-u,-p,-h分別是用戶名,密碼和主機,-D是鏈接的邏輯庫
####登陸的用戶名和密碼是mycat默認提供的,只能讀模式,配置文件在vim /usr/local/mycat/conf/server.xml
啓動mycat報錯信息,主要是因爲沒修改這個配置文件信息:
1、Error: 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配置參數,默認下行的內容爲2G和4G,可根據本機配置狀況修改成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表明readOnly與writeHost分擔請求模式, 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