Mycat_V15用戶(hù)手冊(cè)_第1頁(yè)
Mycat_V15用戶(hù)手冊(cè)_第2頁(yè)
Mycat_V15用戶(hù)手冊(cè)_第3頁(yè)
Mycat_V15用戶(hù)手冊(cè)_第4頁(yè)
Mycat_V15用戶(hù)手冊(cè)_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Mycat1.5用戶(hù)手冊(cè)經(jīng)過(guò)志愿者們幾個(gè)月默默奮戰(zhàn),在大家熱切的期盼中,Mycat1.5終于要面世了。那么Mycat1.5到底有哪些重大改進(jìn)呢,下面就羅列幾點(diǎn)重要特性與大家分享:1、 首次支持基于Galera 集群的狀態(tài)檢測(cè)同步切換機(jī)制,當(dāng)集群節(jié)點(diǎn)有故障后,自動(dòng)排查;2、 首次引入Zookeeper,可視化管理等重要功能;3、 IP白名單,SQL黑名單,數(shù)據(jù)庫(kù)賬號(hào)密碼加密等;4、 修復(fù)重要缺陷:在LVS等前端負(fù)載均衡器模式下,與Mycat頻繁建立連接和關(guān)閉,長(zhǎng)期運(yùn)行后,可能導(dǎo)致連接Id的整數(shù)越界,產(chǎn)生無(wú)法連接的問(wèn)題 ;5、 心跳線(xiàn)程在遇到連接需要同步的情況下,發(fā)生連接同步錯(cuò)誤,導(dǎo)致斷

2、開(kāi)的異常,但不影響心跳檢測(cè)結(jié)果 ;6、 SQL指定到分片執(zhí)行;7、 改進(jìn)reload config , Reload all config from file可能卡死BUG;8、 官方提供All-In-One鏡像??傊?,Mycat1.5帶來(lái)顛覆性的改變,而且一直在改變。1.5 changelog該文檔記錄的是 mycat-server 1.4(2015-10-19)->1.4.1(2015-12-07-1)版本 新增功能(命令/功能) -> 其中命令給出具體的命令參數(shù)說(shuō)明,及應(yīng)用場(chǎng)景; -> 功能給出案例,使用方法步驟新增 show sysparam指令(完成)新增 load

3、 data 對(duì)轉(zhuǎn)義字符的支持新增 可以循環(huán)使用的日期分片規(guī)則新增 慢 SQL 監(jiān)控功能- show sql.slow ; 命令新增 歸并監(jiān)控的SQL增加 遠(yuǎn)程查看日志的指令, 例:show syslog limit=10該命令用于 9066 管理端口,用來(lái)在客戶(hù)端顯示系統(tǒng)日志信息;limit 后接數(shù)值是用來(lái)限定最多顯示日志的條數(shù)新增 讀寫(xiě)權(quán)重配置增加 心跳曲線(xiàn)監(jiān)控功能,并對(duì)心跳時(shí)間精度做出調(diào)整新增 主從同步監(jiān)控功能新增 集群心跳檢測(cè)功能新增 syslog 指令說(shuō)明的 help 顯示增加 用戶(hù)(mycat user)服務(wù)降級(jí)的配置及測(cè)試功能增加 prepare 記錄增加 記錄 connectio

4、n 前一次執(zhí)行 sql 語(yǔ)句功能新增功能 將 Zookeeper 上保存的數(shù)據(jù)寫(xiě)入本地 XML 文件中,XML 文件有 server.xml , schema.xml , rule.xml新增功能 可在寫(xiě)服務(wù)操作掛掉之后,讀服務(wù)依然可用【eye-eye文檔中有介紹】新增統(tǒng)計(jì)服務(wù)功能, 根據(jù)用戶(hù)統(tǒng)計(jì) SQL 的執(zhí)行情況給出 1, R/W ; 2, SLOW TOP 10 , 3. 時(shí)段,耗時(shí) 的直方圖新增 命令 show sql sql.sum sql.slow 統(tǒng)計(jì)數(shù)據(jù)重置; 新增 reloaduser_stat 指令新增 sql hint 通過(guò) datanode 路由新增 在 sql.sum

5、 統(tǒng)計(jì)中增加了并發(fā)數(shù),顯示字段名重構(gòu)在 DTD 中新增加了 tempReadHostAvailable 定義新增 Zookeeper 配置文件的上傳下載功能新增 explan2 命令,通過(guò) datanode 獲取物理節(jié)點(diǎn)的 SQL 解析新增默認(rèn)節(jié)點(diǎn)的 showtable 命令新增提交 IP 白名單和密碼加密功能新增 table 級(jí)別的統(tǒng)計(jì)分析功能,如 R/W 關(guān)聯(lián)表新增 對(duì) show help 指令支持新增對(duì) mysql jdbc 5.1.37 的支持新增 sql 黑名單功能新增 高頻 SQL 分析功能新增加 對(duì)無(wú)用的 SQL 語(yǔ)句進(jìn)行過(guò)濾,僅支持 CURD 語(yǔ)句 功能修復(fù)的 ISSUE -&

6、gt;重現(xiàn)出現(xiàn)問(wèn)題場(chǎng)景 -> 給出修復(fù)之后的使用方法示例修復(fù)并改進(jìn)loaddata語(yǔ)句對(duì)不同字符集時(shí)的支持修復(fù) explain 顯示缺陷修復(fù) tempSchema 空指針錯(cuò)誤修復(fù) PHP 字符集設(shè)置錯(cuò)誤, 如 set names 'utf8'修復(fù)分析定位跨分片處理時(shí),主動(dòng)關(guān)閉后端導(dǎo)致的 bug 修復(fù)分頁(yè)無(wú)效遍歷修復(fù)update別名路由錯(cuò)誤的bug修復(fù) DDL路由BUG修復(fù)執(zhí)行 DDL 語(yǔ)句,中間件會(huì)將結(jié)構(gòu)轉(zhuǎn)為大寫(xiě)的方式執(zhí)行的 BUG修復(fù) CREATE/DROP INDEX功能(測(cè)試用例修復(fù))修復(fù)測(cè)試用例 DDLRouteTest 2 個(gè)測(cè)試用例不通過(guò)的問(wèn)題修復(fù)優(yōu)化 ord

7、er 漏判斷 limitsize=-1 功能修復(fù)排序問(wèn)題修復(fù)集群中多主監(jiān)控未獲取到數(shù)據(jù)問(wèn)題修復(fù) limit -1 返回控制 bug修復(fù) zkcreate 1.8 方法問(wèn)題修復(fù) switchtype=-1 的時(shí)候,重啟mycat 導(dǎo)致自動(dòng)切換的問(wèn)題修復(fù) 5.1.35 show 語(yǔ)句誤判問(wèn)題修改bufferpool的單位為long1.5重要功能修復(fù)修復(fù)并改進(jìn)loaddata語(yǔ)句對(duì)不同字符集時(shí)的支持修復(fù) explain 顯示缺陷修復(fù) tempSchema 空指針錯(cuò)誤修復(fù) PHP 字符集設(shè)置錯(cuò)誤, 如 set names 'utf8'修復(fù)分析定位跨分片處理時(shí),主動(dòng)關(guān)閉后端導(dǎo)致的 bug

8、 修復(fù)分頁(yè)無(wú)效遍歷修復(fù)update別名路由錯(cuò)誤的bug修復(fù) DDL路由BUG修復(fù)執(zhí)行 DDL 語(yǔ)句,中間件會(huì)將結(jié)構(gòu)轉(zhuǎn)為大寫(xiě)的方式執(zhí)行的 BUG修復(fù) CREATE/DROP INDEX功能(測(cè)試用例修復(fù))修復(fù)測(cè)試用例 DDLRouteTest 2 個(gè)測(cè)試用例不通過(guò)的問(wèn)題修復(fù)優(yōu)化 order 漏判斷 limitsize=-1 功能修復(fù)排序問(wèn)題修復(fù)集群中多主監(jiān)控未獲取到數(shù)據(jù)問(wèn)題修復(fù) limit -1 返回控制 bug修復(fù) zkcreate 1.8 方法問(wèn)題修復(fù) switchtype=-1 的時(shí)候,重啟mycat 導(dǎo)致自動(dòng)切換的問(wèn)題修復(fù) 5.1.35 show 語(yǔ)句誤判問(wèn)題修改bufferpool的單

9、位為long1.5啟動(dòng)方式1.5會(huì)支持本地xml啟動(dòng),以及從zk加載配置轉(zhuǎn)為本地xml的兩種方式,conf下的zk.conf文件里設(shè)置loadfromzk參數(shù)默認(rèn)為false如果沒(méi)有這個(gè)文件,或者沒(méi)有l(wèi)oadfromzk為true的參數(shù),即從本地加載。下面介紹從ZK啟動(dòng)相關(guān)配置。1.5新特性ZK啟動(dòng)環(huán)境準(zhǔn)備1 JDK環(huán)境要求Mycat,mycat eye依賴(lài)jdk1.7環(huán)境,jdk下載地址為:2 Zookeeper環(huán)境要求下載zookeeper-3.4.6.jar(/releases.html),上傳到服務(wù)器,然后解壓:tar zxvf zo

10、okeeper-3.4.6.tar.gz之后進(jìn)入zookeeper目錄:cd zookeeper-3.4.6,配置zk啟動(dòng)文件:Zk-create.yaml說(shuō)明1.5正式引入zookeeper(以下簡(jiǎn)稱(chēng)zk)管理Mycat-Server,啟動(dòng)server第一步是初始化zk數(shù)據(jù),下面介紹初始化zk數(shù)據(jù)步驟,信息在zk-create.yaml。Mycat ZK配置文件詳解:1、zk-create總體結(jié)構(gòu)2、參數(shù)說(shuō)明2.1、zkURL,zk連接地址2.2、mycat-cluster2.3、mycat-hosts2.4、mycat-zones2.5、mycat-nodes2.6、mycat-mysql

11、s2.7、mysql-repsZk初始化1、進(jìn)入MYCAT/bin目錄cd /data/test1/mycat/bin2、修改MYCAT/conf/zk-create.yaml內(nèi)容修改方法見(jiàn)“Zk-create.yaml說(shuō)明”。3、啟動(dòng)ZK啟動(dòng)ZK:bin/zkServer.sh start登陸ZK:bin/zkCli.sh4、初始化ZK數(shù)據(jù)sh create_zookeeper_data.sh等待執(zhí)行結(jié)束后,檢查ZK數(shù)據(jù)5、檢查ZK數(shù)據(jù)OK,數(shù)據(jù)初始化成功??梢暬芾?安裝環(huán)境要求1.1 JDK環(huán)境要求Mycat,mycat eye依賴(lài)jdk1.7環(huán)境,jdk下載地址為:1.2 Zookee

12、per環(huán)境要求Mycat eye 需要Zookeeper作為配置中心zookeeper-3.4.6.tar.gz1.2 Zookeeper配置1. 解壓 zookeeper-3.4.6.tar.gz;2. zookeeper-3.4.6conf 目錄下把 zoo_sample.cfg修改為 zoo.cfg;3. 啟動(dòng)zookeeper Windowns操作系統(tǒng)啟動(dòng)命令:zookeeper-3.4.6binzkServer.bat Linux操作系統(tǒng)啟動(dòng)命令:zookeeper-3.4.6binzkServer.sh start2 Mycat eye環(huán)境部署2.1 軟件清單Windowns版本:

13、Mycat-web-1.0-SNAPSHOT-20151208180035-win.zipLinux版本:Mycat-web-1.0-SNAPSHOT-20151208180035-linux.tar.gz下載地址:2.2 運(yùn)行1:解壓加壓后生成mycat-web目錄,目錄結(jié)構(gòu)如下:2:先啟動(dòng)zookeeper;3:然后啟動(dòng)mycat eyeWindowns版本:start.batLinux版本:start.sh2.3 訪問(wèn)mycat eye訪問(wèn)地址:http:/localhost:8082/mycat/2.3 perties配置方法1:如果zookeeper連接不上可以修改

14、mycat-webmycat-webWEB-INFperties配置文件zookeeper=:2181配置下zookeeper的服務(wù)器和端口方法2:訪問(wèn)http:/localhost:8082/mycat/點(diǎn)擊注冊(cè)中心-配置輸入Zookeeper的IP地址和端口即可。3 Mycat配置說(shuō)明Mycat主要是維護(hù)mycat節(jié)點(diǎn)和mycat jmx信息,有四個(gè)菜單3.1 Mycat服務(wù)管理列表顯示所有管理的mycat服務(wù),如下圖所示:新增新增一個(gè)mycat服務(wù),包括名稱(chēng),IP,端口,數(shù)據(jù)庫(kù)名稱(chēng),用戶(hù)名和密碼3.2 Mycat VM管理列表顯示所有管理

15、的mycatVM服務(wù)新增新增一個(gè)mycatVM服務(wù),包括名稱(chēng),IP,端口,用戶(hù)名和密碼3.3 Mycat系統(tǒng)參數(shù)查詢(xún)mycat服務(wù)的系統(tǒng)參數(shù)條件:選擇3.1中的mycat服務(wù)Mycat server命令行輸入:show sysparamMycat系統(tǒng)參數(shù)總共有18項(xiàng),如下圖:3.2 Mycat日志管理查詢(xún)Mycat最新的日志,默認(rèn)顯示50條Mycat server命令行輸入:show syslog limit=504 Mycat監(jiān)控Mycat-eye中的mycat性能監(jiān)控、JVM監(jiān)控中的監(jiān)控圖是基于jrds實(shí)現(xiàn);1. 實(shí)現(xiàn)步驟:1.1通過(guò)mycat服務(wù)管理創(chuàng)建一個(gè)mycat監(jiān)控服務(wù)。同時(shí)會(huì)基于

16、freemark模板引擎生成Jrds配置信息。目前默認(rèn)指定路徑為:WEB-INFjrdsconfhosts錄下。1.2在通過(guò)點(diǎn)擊【mycat性能監(jiān)控】菜單時(shí),頁(yè)面會(huì)調(diào)用jrds提供的/reload。加載WEB-INFjrdsconfhosts下的*.xml如:D__9066.xml文件。通過(guò)調(diào)用/graph/hostMycatList?hostprefix=D 加載監(jiān)控列表hostprefix為hosts下的文件名稱(chēng)前綴。4.1 Mycat性能監(jiān)控條件:選擇3.1中的mycat服務(wù),包括:Mycat流量分析Mycat連接分析Mycat活動(dòng)線(xiàn)程分析Mycat緩沖隊(duì)列分析Myca

17、tTPS分析Mycat內(nèi)存分析如圖所示:4.2 Mycat JVM性能監(jiān)控1)JVM監(jiān)控需要在Mycat Server中配置啟動(dòng)參數(shù):-XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:CMSInitiatingOccupancyFraction=70 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.mana

18、gement.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false或者直接用配置好的startup_nowrap.bat2)選擇3.2中管理的JVM4.2 Mycat 物理節(jié)點(diǎn)1)選擇3.1中管理的Mycat,自動(dòng)查詢(xún)出mysql節(jié)點(diǎn)信息2)心跳曲線(xiàn)4.2 Mycat 主從同步監(jiān)控1)選擇3.1中管理的Mycat,自動(dòng)查詢(xún)出mysql主從節(jié)點(diǎn)信息監(jiān)控mysql的主從同步曲線(xiàn)5 SQL監(jiān)控SQL監(jiān)控,主要是監(jiān)控和分析SQL語(yǔ)句5.1 SQL統(tǒng)計(jì)按用戶(hù)統(tǒng)計(jì)SQL讀寫(xiě)比例,時(shí)間分布耗時(shí)。Mycat server命令

19、行輸入:show sql.sum如圖所示:5.2 SQL表統(tǒng)計(jì)統(tǒng)計(jì)表的讀寫(xiě)比例,表之間的關(guān)系;Mycat server命令行輸入:show sql.sum.table如圖所示:5.3 SQL監(jiān)控監(jiān)控業(yè)務(wù)系統(tǒng)執(zhí)行的SQL語(yǔ)句,默認(rèn)50條;Mycat server命令行輸入:show sql如圖所示:5.4 高頻SQLSQL進(jìn)過(guò)歸并,統(tǒng)計(jì)執(zhí)行頻率高的SQL語(yǔ)句;Mycat server命令行輸入:show sql.high如圖所示:5.5 慢SQL統(tǒng)計(jì)默認(rèn)查詢(xún)耗時(shí)1000ms的SQL語(yǔ)句,Mycat server命令行輸入:show sql.slow如圖所示:5.6 SQL解析解析SQL語(yǔ)句,分2

20、步執(zhí)行;第一步:explain 解析SQL語(yǔ)句的路由信息第二步:explain2 datanode = dn1 sql =制定節(jié)點(diǎn),然后到mysql服務(wù)器執(zhí)行Explain命令Mycat server命令行輸入:第一步:explain select * from t_sys_log;第二步:explain2 datanode = dn1 sql = SELECT * FROM t_sys_log LIMIT 10000如圖所示:權(quán)限管理-密碼加密在 Mycat-1.4.1 版本中為用戶(hù)登錄所使用的登錄密碼提供了加密功能;目前支持的加密方式有兩種,分別是前段加密和后端加密。在這簡(jiǎn)單介紹前段加密和

21、后端加密的區(qū)別:前段加密是對(duì)mycat用戶(hù)登錄到 Mycat-Server 所需要輸入的密碼進(jìn)行加密 ;而后端加密則是指,Mycat-Server 中的 dataHost dataHost 是mycat邏輯庫(kù)中最底層的,與具體的數(shù)據(jù)庫(kù)實(shí)例一一對(duì)應(yīng)訪問(wèn)后端數(shù)據(jù)庫(kù)實(shí)例的時(shí)候的所需登錄密碼進(jìn)行加密;不過(guò),無(wú)論是前段加密還是后端加密,加密功能的開(kāi)啟都與 usingDecrypt 這個(gè)屬性值的設(shè)定相關(guān);如果將 usingDecrypt 屬性值設(shè)定為 1 , 則說(shuō)明開(kāi)啟前(或后)端加密;如果將 usingDecrypt 屬性值設(shè)定為 0 , 則說(shuō)明關(guān)閉前(或后)端加密;同樣,無(wú)論前后端加密登錄,基本流程都

22、是,開(kāi)啟密碼加密功能; 執(zhí)行 java 命令對(duì)密碼進(jìn)行加密操作; 將生成的加密序列拷貝到 server.xml ;用戶(hù)密碼子標(biāo)簽中; 根據(jù)開(kāi)啟加密功能的用戶(hù)名稱(chēng)和未加密密碼來(lái)遠(yuǎn)程登錄服務(wù)器端, 上述這幾個(gè)步驟1前端加密這里我們?cè)O(shè)定用戶(hù)名稱(chēng)為 userA ,因?yàn)閷?duì)密碼進(jìn)行加密,所以,在這里不需要在 <user> 的子標(biāo)簽中通過(guò) <property> 屬性標(biāo)簽來(lái)指定password ,僅需要設(shè)定用戶(hù)名稱(chēng)和通過(guò)將 usingDecrypt 屬性值置為 1 來(lái)開(kāi)啟加密功能即可:# 配置文件 server.xml 的配置如下# 開(kāi)啟加密功能的 Mycat-Server 啟動(dòng)方式

23、#1.首先,打開(kāi)命令窗口,切換路徑到,下載文件包的 ./mycat-1.4.1-dev/mycat/lib 目錄下 #2. 執(zhí)行命令對(duì)用戶(hù)輸入的密碼加密生成加密數(shù)列 如果想為名為 userA , 密碼為 32167 的用戶(hù)前段加密的話(huà),輸入命令: java -cp Mycat-server-1.4.1-dev.jar org.opencloudb.util.DecryptUtil 0:userA:32167 (回車(chē)) 這里的 0:userA:32167 分別對(duì)應(yīng)的是 <加密方式:0 前端加密, 1 后端加密><server.xml 文件中定義的用戶(hù)名><明文密碼&

24、gt; (注意,用戶(hù) userA 需要在 server.xml 中創(chuàng)建好) 在命令行中會(huì)顯示出已經(jīng)加密的數(shù)列序,即,密文密碼 #3. 將生成的數(shù)列序號(hào)拷貝到 server.xml 對(duì)應(yīng)用戶(hù) userA 的子標(biāo)簽中,完成對(duì) server.xml 的配置, 如下所示#4. 運(yùn)行啟動(dòng) Mycat-Server 的腳本來(lái)啟動(dòng)Mycat 服務(wù)器 #5. 打開(kāi)一個(gè)新的命令窗口,遠(yuǎn)程連接 Mycat-Server 9066 端口 mysql -uuserA -p -P9066 -hlocalhost (或是主機(jī) IP 地址) 在命令行提示輸入密碼的時(shí)候,輸入剛剛被加密之前的密碼 32167 即可以完成前端加

25、密登錄2 后端加密后端加密是對(duì) dataHost 到后端數(shù)據(jù)庫(kù)登錄密碼進(jìn)行加密,所以,我們需要配置的是 schema.xml 這個(gè)配置文件#1. 編寫(xiě) schema.xml 配置文件,具體配置如下所示:在上述的配置文件中,我們創(chuàng)建了一個(gè)名為 userB 向數(shù)據(jù)庫(kù)實(shí)例執(zhí)行寫(xiě)操作的 host ,并且該 host 連接到后端數(shù)據(jù)庫(kù)實(shí)例的時(shí)候,通過(guò) usingDecrypt 參數(shù)設(shè)定為 1 來(lái)開(kāi)啟對(duì)密碼加密的功能 #2. 運(yùn)行 java 命令,來(lái)對(duì)密碼加密生成加密序列數(shù)(目錄路徑同上為 ./mycat-1.4.1-dev/mycat/lib 路徑下面) 命令: java -cp Mycat-serve

26、r-1.4.1-dev.jar org.opencloudb.util.DecryptUtil 1:userB:root:32167#3. 將生成的密文密碼用來(lái)完善 schema.xml 配置文件,具體配置如下圖所示:#4. 運(yùn)行bin 目錄下面的啟動(dòng)腳本來(lái)啟動(dòng) Mycat-Server 后端加密的關(guān)鍵之處在于,如果對(duì)應(yīng) userB/即加密 host ,的 password 屬性值若賦予加密之后的密碼數(shù)值,則 Mycat-Server 將會(huì)啟動(dòng)報(bào)錯(cuò), 拋出異常信息如下所示:#5. 在成功啟動(dòng) Mycat-Server 之后,開(kāi)啟新窗口,既可以前端加密的方式來(lái)登錄,也可以設(shè)定明文密碼的方式來(lái)登錄

27、, 在這里我們繼續(xù)使用上述介紹的前端加密的方式來(lái)登錄 也就是在 server.xml 配置文件中保留原有的配置,并且在登錄要求輸入登錄密碼的時(shí),輸入未加密的明文密碼 32167 即可連通成功權(quán)限管理IP白名單 /SQL黑名單IP白名單和SQL黑名單說(shuō)明:- ip白名單-<quarantine><whitehost><host user="mycat" host=""></host> ip白名單 用戶(hù)對(duì)應(yīng)的可以訪問(wèn)的ip地址</whitehost><blacklist ch

28、eck="true"><property name="selelctAllow">false</property> 黑名單允許的 權(quán)限 后面為默認(rèn)</blacklist></quarantine>-黑名單允許的 權(quán)限 后面為默認(rèn)-配置項(xiàng)缺省值描述selelctAllowtrue是否允許執(zhí)行SELECT語(yǔ)句selectAllColumnAllowtrue是否允許執(zhí)行SELECT * FROM T這樣的語(yǔ)句。如果設(shè)置為false,不允許執(zhí)行select * from t,但select * from (s

29、elect id, name from t) a。這個(gè)選項(xiàng)是防御程序通過(guò)調(diào)用select *獲得數(shù)據(jù)表的結(jié)構(gòu)信息。selectIntoAllowtrueSELECT查詢(xún)中是否允許INTO字句deleteAllowtrue是否允許執(zhí)行DELETE語(yǔ)句updateAllowtrue是否允許執(zhí)行UPDATE語(yǔ)句insertAllowtrue是否允許執(zhí)行INSERT語(yǔ)句replaceAllowtrue是否允許執(zhí)行REPLACE語(yǔ)句mergeAllowtrue是否允許執(zhí)行MERGE語(yǔ)句,這個(gè)只在Oracle中有用callAllowtrue是否允許通過(guò)jdbc的call語(yǔ)法調(diào)用存儲(chǔ)過(guò)程setAllowtr

30、ue是否允許使用SET語(yǔ)法truncateAllowtruetruncate語(yǔ)句是危險(xiǎn),缺省打開(kāi),若需要自行關(guān)閉createTableAllowtrue是否允許創(chuàng)建表alterTableAllowtrue是否允許執(zhí)行Alter Table語(yǔ)句dropTableAllowtrue是否允許修改表commentAllowfalse是否允許語(yǔ)句中存在注釋?zhuān)琌racle的用戶(hù)不用擔(dān)心,Wall能夠識(shí)別hints和注釋的區(qū)別noneBaseStatementAllowfalse是否允許非以上基本語(yǔ)句的其他語(yǔ)句,缺省關(guān)閉,通過(guò)這個(gè)選項(xiàng)就能夠屏蔽DDL。multiStatementAllowfalse是否允許

31、一次執(zhí)行多條語(yǔ)句,缺省關(guān)閉useAllowtrue是否允許執(zhí)行mysql的use語(yǔ)句,缺省打開(kāi)describeAllowtrue是否允許執(zhí)行mysql的describe語(yǔ)句,缺省打開(kāi)showAllowtrue是否允許執(zhí)行mysql的show語(yǔ)句,缺省打開(kāi)commitAllowtrue是否允許執(zhí)行commit操作rollbackAllowtrue是否允許執(zhí)行roll back操作如果把selectIntoAllow、deleteAllow、updateAllow、insertAllow、mergeAllow都設(shè)置為false,這就是一個(gè)只讀數(shù)據(jù)源了。攔截配置永真條件配置項(xiàng)缺省值描述selectW

32、hereAlwayTrueChecktrue檢查SELECT語(yǔ)句的WHERE子句是否是一個(gè)永真條件selectHavingAlwayTrueChecktrue檢查SELECT語(yǔ)句的HAVING子句是否是一個(gè)永真條件deleteWhereAlwayTrueChecktrue檢查DELETE語(yǔ)句的WHERE子句是否是一個(gè)永真條件deleteWhereNoneCheckfalse檢查DELETE語(yǔ)句是否無(wú)where條件,這是有風(fēng)險(xiǎn)的,但不是SQL注入類(lèi)型的風(fēng)險(xiǎn)updateWhereAlayTrueChecktrue檢查UPDATE語(yǔ)句的WHERE子句是否是一個(gè)永真條件updateWhereNoneC

33、heckfalse檢查UPDATE語(yǔ)句是否無(wú)where條件,這是有風(fēng)險(xiǎn)的,但不是SQL注入類(lèi)型的風(fēng)險(xiǎn)conditionAndAlwayTrueAllowfalse檢查查詢(xún)條件(WHERE/HAVING子句)中是否包含AND永真條件conditionAndAlwayFalseAllowfalse檢查查詢(xún)條件(WHERE/HAVING子句)中是否包含AND永假條件conditionLikeTrueAllowtrue檢查查詢(xún)條件(WHERE/HAVING子句)中是否包含LIKE永真條件其他攔截配置配置項(xiàng)缺省值描述selectIntoOutfileAllowfalseSELECT . INTO OUT

34、FILE 是否允許,這個(gè)是mysql注入攻擊的常見(jiàn)手段,缺省是禁止的selectUnionChecktrue檢測(cè)SELECT UNIONselectMinusChecktrue檢測(cè)SELECT MINUSselectExceptChecktrue檢測(cè)SELECT EXCEPTselectIntersectChecktrue檢測(cè)SELECT INTERSECTmustParameterizedfalse是否必須參數(shù)化,如果為T(mén)rue,則不允許類(lèi)似WHERE ID = 1這種不參數(shù)化的SQLstrictSyntaxChecktrue是否進(jìn)行嚴(yán)格的語(yǔ)法檢測(cè),Druid SQL Parser在某些場(chǎng)景

35、不能覆蓋所有的SQL語(yǔ)法,出現(xiàn)解析SQL出錯(cuò),可以臨時(shí)把這個(gè)選項(xiàng)設(shè)置為false,同時(shí)把SQL反饋給Druid的開(kāi)發(fā)者。conditionOpXorAllowfalse查詢(xún)條件中是否允許有XOR條件。XOR不常用,很難判斷永真或者永假,缺省不允許。conditionOpBitwseAllowtrue查詢(xún)條件中是否允許有"&"、""、"|"、""運(yùn)算符。conditionDoubleConstAllowfalse查詢(xún)條件中是否允許連續(xù)兩個(gè)常量運(yùn)算表達(dá)式minusAllowtrue是否允許SELECT * FR

36、OM A MINUS SELECT * FROM B這樣的語(yǔ)句intersectAllowtrue是否允許SELECT * FROM A INTERSECT SELECT * FROM B這樣的語(yǔ)句constArithmeticAllowtrue攔截常量運(yùn)算的條件,比如說(shuō)WHERE FID = 3 - 1,其中"3 - 1"是常量運(yùn)算表達(dá)式。limitZeroAllowfalse是否允許limit 0這樣的語(yǔ)句禁用對(duì)象檢測(cè)配置配置項(xiàng)缺省值描述tableChecktrue檢測(cè)是否使用了禁用的表schemaChecktrue檢測(cè)是否使用了禁用的SchemafunctionChe

37、cktrue檢測(cè)是否使用了禁用的函數(shù)objectChecktrue檢測(cè)是否使用了“禁用對(duì)對(duì)象”variantChecktrue檢測(cè)是否使用了“禁用的變量”readOnlyTables空指定的表只讀,不能夠在SELECT INTO、DELETE、UPDATE、INSERT、MERGE中作為"被修改表"出現(xiàn)新增IP限制登陸功能,與mysql賬號(hào)授權(quán)指定IP段類(lèi)似,下面介紹用法。 在server.xml添加信任IP /SQL黑名單示例:只允許xx IP的主機(jī)登陸,并且不允許執(zhí)行SELECT *操作<quarantine><whitehost><hos

38、t host="自己指定IP" user="test"></host></whitehost><blacklist check="true"><property name="selectAllColumnAllow">false</property></blacklist></quarantine>使用指定主機(jī)登陸,執(zhí)行SELECT *,被限制執(zhí)行使用主機(jī)列表以外IP登陸,被限制登陸show系統(tǒng)參數(shù)<所在端口號(hào),功能,參

39、數(shù),示例>+-命令: show sysparam端口號(hào):9066功能: 該命令工作在 9066 端口,用來(lái)向用戶(hù)展示處于工作狀態(tài)的 Mycat-Server 的各項(xiàng)系統(tǒng)參數(shù) 通常用于重新設(shè)定 Mycat-Server 系統(tǒng)參數(shù)之后,查看設(shè)定是否生效參數(shù): 無(wú)參數(shù)示例: # 首先啟動(dòng) Mycat-Server ,然后打開(kāi)命令窗口遠(yuǎn)程連接到 Mycat-Server 上 mysql -utest -p -P9066 -hlocalhost # 輸入 show sysparam ; 即可顯示系統(tǒng)參數(shù)信息# 使用 show help 可顯示 show sysparam 使用說(shuō)明show系統(tǒng)日志+

40、-命令: show syslog limit端口號(hào):該命令工作在 9066 端口,用來(lái)在客戶(hù)端命令窗口顯示系統(tǒng)日志信息, 通常用于遠(yuǎn)程查看Mycat-Server 的日志信息參數(shù): limit= 后接正整數(shù),該數(shù)值用來(lái)限定每次最多顯示的日志條數(shù)示例:# 啟動(dòng) Mycat-Server ,打開(kāi)命令端口遠(yuǎn)程連接 Mycat-Server mysql -utest -p -P9066 -hlocalhost # 輸入命令 show syslog limit=10 ; 即可顯示最多 10 行 Mycat-Server 日志記錄信息 # 使用 show help ; 命令可查看該命令的功能描述信息Sql

41、/SlowSql/SqlNum 統(tǒng)計(jì)命令1、清除緩存命令: reloaduser_stat 端口號(hào): 該命令工作在 9066 端口,用來(lái)將客戶(hù)端執(zhí)行 show sql ; show sql.sum ; show slow.success ;命令之后所緩存的信息清空;參數(shù): 無(wú)參數(shù)2、Sql 統(tǒng)計(jì)示例示例:# 啟動(dòng) Mycat-Server , # 打開(kāi)命令端口遠(yuǎn)程連接 Mycat-Server 的管理端口mysql -utest -p -P9066 -hlocalhost # 再打開(kāi)一個(gè)新的命令端口,遠(yuǎn)程連接 Mycat-Server 的SQL操作端口mysql -utest -p -P806

42、6 -hlocalhost # 在 8066 端口命令窗口中執(zhí)行 SQL 語(yǔ)句操作,然后在 9066 端口命令窗口分別執(zhí)行如下命令 show sql ; show sql.slow ; show sql.sum ; 會(huì)顯示出各自的提示信息,信息分別記錄了 Mycat-Server 8066 端口上剛剛執(zhí)行的 SQL 操作信息 # 在 9066 端口命令窗口中執(zhí)行命令 reload user_stat ; 該命令會(huì)將剛剛緩存的 show sql , show sql.slow , show sql.sum 記錄信息全部清空 # 在 9066 端口,再次執(zhí)行 show sql ; 該命令,則會(huì)顯示

43、 "Empty set <0.00 sec>" 的提示信息 # 使用 show help ; 該命令可以查看該功能的描述信息+-命令: show sql ;端口號(hào): 該命令工作在 9066 端口,用來(lái)記錄用戶(hù)通過(guò)本地 8066 端口向 Mycat-Server發(fā)送的 SQL 請(qǐng)求執(zhí)行信息 信息包括有 ID 值,執(zhí)行SQL語(yǔ)句的用戶(hù)名稱(chēng),執(zhí)行的 SQL 語(yǔ)句,命令執(zhí)行的起始時(shí)間,命令執(zhí)行消耗時(shí)間 參數(shù): 無(wú)參數(shù)示例: # 啟動(dòng) Mycat-Server , # 打開(kāi)命令端口遠(yuǎn)程連接 Mycat-Server 的管理端口mysql -utest -p -P9066

44、-hlocalhost # 再打開(kāi)一個(gè)新的命令端口,遠(yuǎn)程連接 Mycat-Server 的SQL操作端口mysql -utest -p -P8066 -hlocalhost # 在 8066 連接的命令窗口中根據(jù)本地?cái)?shù)據(jù)庫(kù)表,輸入相關(guān)的 SQL 語(yǔ)句 select * from TESTDB.company ; # 在 9066 連接的命令窗口輸入命令 show sql ; 將會(huì)顯示出剛剛執(zhí)行 SQL 語(yǔ)句詳細(xì)的相關(guān)信息,ID指的是? USER 是通過(guò) 8066 遠(yuǎn)程連接到 Mycat-Server 的用戶(hù)名稱(chēng); START_TIME, EXECUTE_TIME 分別是SQL語(yǔ)句的起始時(shí)間和從

45、開(kāi)始到結(jié)束命令執(zhí)行消耗總時(shí)間。 +-命令: show sql.slow ;端口號(hào): 該命令工作在 9066 端口,是用來(lái)將用戶(hù)通過(guò) 8066 端口向Mycat-Server 發(fā)送的請(qǐng)求執(zhí)行 SQL 語(yǔ)句中超過(guò)慢 SQL 時(shí)間閾值的 SQL 語(yǔ)句信息 ; 在這里首先應(yīng)該明確的是何為'慢 SQL' , 所謂的慢 SQL 是執(zhí)行時(shí)間相對(duì)時(shí)間閾值耗時(shí)較長(zhǎng)的SQL語(yǔ)句,在 mycat-1.4.1 版本中 增設(shè)該功能是為了方便用戶(hù)從本地執(zhí)行的 SQL 命令中篩選出耗時(shí)較長(zhǎng)的 SQL 語(yǔ)句出來(lái),針對(duì)耗時(shí)長(zhǎng)的 SQL 語(yǔ)句做出優(yōu)化處理。 那么如何設(shè)定'慢SQL' 的時(shí)間閾值呢?

46、 這個(gè)命令稍后立即會(huì)介紹給大家參數(shù): 無(wú)參數(shù)示例: # 啟動(dòng) Mycat-Server , # 打開(kāi)命令端口遠(yuǎn)程連接 Mycat-Server 的管理端口mysql -utest -p -P9066 -hlocalhost # 再打開(kāi)一個(gè)新的命令端口,遠(yuǎn)程連接 Mycat-Server 的SQL操作端口mysql -utest -p -P8066 -hlocalhost # 為了方便演示,我們?cè)?9066 端口中將'慢SQL' 的時(shí)間閾值設(shè)定為 0 (ms) (這樣無(wú)論執(zhí)行那種 SQL 語(yǔ)句,相關(guān)信息均會(huì)被當(dāng)做慢 SQL 信息記錄下來(lái)) reload sqlslow=0 ; # 是的這條命令就是剛才提到的'如何設(shè)定慢 SQL' 時(shí)間閾值的命令# 然后切換到 8066 端口,根據(jù)本地?cái)?shù)據(jù)庫(kù)的情況執(zhí)行一條 SQL 語(yǔ)句 select * from TESTDB.company ;# 再將窗口切換到 9066 端口中,輸入如下命令show sql.slow ; # 值得注意的地方就是,現(xiàn)在 9066 窗口中顯示出來(lái)的信息,是從設(shè)定閾值之后的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論