版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Mycat-1.5用戶手冊(cè)經(jīng)過志愿者們幾個(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)生無法連接的問題 ;5、 心跳線程在遇到連接需要同步的情況下,發(fā)生連接同步錯(cuò)誤,導(dǎo)致
2、斷開的異常,但不影響心跳檢測(cè)結(jié)果 ;6、 SQL指定到分片執(zhí)行;7、 改進(jìn)reload config , Reload all config from file可能卡死BUG;8、 官方提供All-In-One鏡像??傊琈ycat1.5帶來顛覆性的改變,而且一直在改變。1.5 changelog該文檔記錄的是 mycat-server 1.4(2015-10-19)->1.4.1(2015-12-07-1)版本 新增功能(命令/功能) -> 其中命令給出具體的命令參數(shù)說明,及應(yīng)用場(chǎng)景; -> 功能給出案例,使用方法步驟新增 show sysparam指令(完成)新增 loa
3、d data 對(duì)轉(zhuǎn)義字符的支持新增 可以循環(huán)使用的日期分片規(guī)則新增 慢 SQL 監(jiān)控功能- show sql.slow ; 命令新增 歸并監(jiān)控的SQL增加 遠(yuǎn)程查看日志的指令, 例:show syslog limit=10該命令用于 9066 管理端口,用來在客戶端顯示系統(tǒng)日志信息;limit 后接數(shù)值是用來限定最多顯示日志的條數(shù)新增 讀寫權(quán)重配置增加 心跳曲線監(jiān)控功能,并對(duì)心跳時(shí)間精度做出調(diào)整新增 主從同步監(jiān)控功能新增 集群心跳檢測(cè)功能新增 syslog 指令說明的 help 顯示增加 用戶(mycat user)服務(wù)降級(jí)的配置及測(cè)試功能增加 prepare 記錄增加 記錄 connecti
4、on 前一次執(zhí)行 sql 語句功能新增功能 將 Zookeeper 上保存的數(shù)據(jù)寫入本地 XML 文件中,XML 文件有 server.xml , schema.xml , rule.xml新增功能 可在寫服務(wù)操作掛掉之后,讀服務(wù)依然可用【eye-eye文檔中有介紹】新增統(tǒng)計(jì)服務(wù)功能, 根據(jù)用戶統(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 通過 datanode 路由新增 在 sql.su
5、m 統(tǒng)計(jì)中增加了并發(fā)數(shù),顯示字段名重構(gòu)在 DTD 中新增加了 tempReadHostAvailable 定義新增 Zookeeper 配置文件的上傳下載功能新增 explan2 命令,通過 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ì)無用的 SQL 語句進(jìn)行過濾,僅支持 CURD 語句 功能修復(fù)的 ISSUE -
6、>重現(xiàn)出現(xiàn)問題場(chǎng)景 -> 給出修復(fù)之后的使用方法示例修復(fù)并改進(jìn)loaddata語句對(duì)不同字符集時(shí)的支持修復(fù) explain 顯示缺陷修復(fù) tempSchema 空指針錯(cuò)誤修復(fù) PHP 字符集設(shè)置錯(cuò)誤, 如 set names 'utf8'修復(fù)分析定位跨分片處理時(shí),主動(dòng)關(guān)閉后端導(dǎo)致的 bug 修復(fù)分頁無效遍歷修復(fù)update別名路由錯(cuò)誤的bug修復(fù) DDL路由BUG修復(fù)執(zhí)行 DDL 語句,中間件會(huì)將結(jié)構(gòu)轉(zhuǎn)為大寫的方式執(zhí)行的 BUG修復(fù) CREATE/DROP INDEX功能(測(cè)試用例修復(fù))修復(fù)測(cè)試用例 DDLRouteTest 2 個(gè)測(cè)試用例不通過的問題修復(fù)優(yōu)化 or
7、der 漏判斷 limitsize=-1 功能修復(fù)排序問題修復(fù)集群中多主監(jiān)控未獲取到數(shù)據(jù)問題修復(fù) limit -1 返回控制 bug修復(fù) zkcreate 1.8 方法問題修復(fù) switchtype=-1 的時(shí)候,重啟mycat 導(dǎo)致自動(dòng)切換的問題修復(fù) 5.1.35 show 語句誤判問題修改bufferpool的單位為long1.5重要功能修復(fù)修復(fù)并改進(jìn)loaddata語句對(duì)不同字符集時(shí)的支持修復(fù) explain 顯示缺陷修復(fù) tempSchema 空指針錯(cuò)誤修復(fù) PHP 字符集設(shè)置錯(cuò)誤, 如 set names 'utf8'修復(fù)分析定位跨分片處理時(shí),主動(dòng)關(guān)閉后端導(dǎo)致的 bu
8、g 修復(fù)分頁無效遍歷修復(fù)update別名路由錯(cuò)誤的bug修復(fù) DDL路由BUG修復(fù)執(zhí)行 DDL 語句,中間件會(huì)將結(jié)構(gòu)轉(zhuǎn)為大寫的方式執(zhí)行的 BUG修復(fù) CREATE/DROP INDEX功能(測(cè)試用例修復(fù))修復(fù)測(cè)試用例 DDLRouteTest 2 個(gè)測(cè)試用例不通過的問題修復(fù)優(yōu)化 order 漏判斷 limitsize=-1 功能修復(fù)排序問題修復(fù)集群中多主監(jiān)控未獲取到數(shù)據(jù)問題修復(fù) limit -1 返回控制 bug修復(fù) zkcreate 1.8 方法問題修復(fù) switchtype=-1 的時(shí)候,重啟mycat 導(dǎo)致自動(dòng)切換的問題修復(fù) 5.1.35 show 語句誤判問題修改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如果沒有這個(gè)文件,或者沒有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依賴jdk1.7環(huán)境,jdk下載地址為:2 Zookeeper環(huán)境要求下載zookeeper-3.4.6.jar(/releases.html),上傳到服務(wù)器,然后解壓:tar zxvf z
10、ookeeper-3.4.6.tar.gz之后進(jìn)入zookeeper目錄:cd zookeeper-3.4.6,配置zk啟動(dòng)文件:Zk-create.yaml說明1.5正式引入zookeeper(以下簡(jiǎn)稱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ù)說明2.1、zkURL,zk連接地址2.2、mycat-cluster2.3、mycat-hosts2.4、mycat-zones2.5、mycat-nodes2.6、mycat-my
11、sqls2.7、mysql-repsZk初始化1、進(jìn)入MYCAT/bin目錄cd /data/test1/mycat/bin2、修改MYCAT/conf/zk-create.yaml內(nèi)容修改方法見“Zk-create.yaml說明”。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依賴jdk1.7環(huán)境,jdk下載地址為:1.2 Zoo
12、keeper環(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 訪問mycat eye訪問地址:http:/localhost:8082/mycat/2.3 perties配置方法1:如果zookeeper連接不上
14、可以修改mycat-webmycat-webWEB-INFperties配置文件zookeeper=:2181配置下zookeeper的服務(wù)器和端口方法2:訪問http:/localhost:8082/mycat/點(diǎn)擊注冊(cè)中心-配置輸入Zookeeper的IP地址和端口即可。3 Mycat配置說明Mycat主要是維護(hù)mycat節(jié)點(diǎn)和mycat jmx信息,有四個(gè)菜單3.1 Mycat服務(wù)管理列表顯示所有管理的mycat服務(wù),如下圖所示:新增新增一個(gè)mycat服務(wù),包括名稱,IP,端口,數(shù)據(jù)庫(kù)名稱,用戶名和密碼3.2 Mycat VM管理列表顯示
15、所有管理的mycatVM服務(wù)新增新增一個(gè)mycatVM服務(wù),包括名稱,IP,端口,用戶名和密碼3.3 Mycat系統(tǒng)參數(shù)查詢mycat服務(wù)的系統(tǒng)參數(shù)條件:選擇3.1中的mycat服務(wù)Mycat server命令行輸入:show sysparamMycat系統(tǒng)參數(shù)總共有18項(xiàng),如下圖:3.2 Mycat日志管理查詢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通過mycat服務(wù)管理創(chuàng)建一個(gè)mycat監(jiān)控服務(wù)。同
16、時(shí)會(huì)基于freemark模板引擎生成Jrds配置信息。目前默認(rèn)指定路徑為:WEB-INFjrdsconfhosts錄下。1.2在通過點(diǎn)擊【mycat性能監(jiān)控】菜單時(shí),頁面會(huì)調(diào)用jrds提供的/reload。加載WEB-INFjrdsconfhosts下的*.xml如:D__9066.xml文件。通過調(diào)用/graph/hostMycatList?hostprefix=D 加載監(jiān)控列表hostprefix為hosts下的文件名稱前綴。4.1 Mycat性能監(jiān)控條件:選擇3.1中的mycat服務(wù),包括:Mycat流量分析Mycat連接分析Mycat活動(dòng)線程分析Mycat緩沖隊(duì)列分析
17、MycatTPS分析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.
18、management.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)查詢出mysql節(jié)點(diǎn)信息2)心跳曲線4.2 Mycat 主從同步監(jiān)控1)選擇3.1中管理的Mycat,自動(dòng)查詢出mysql主從節(jié)點(diǎn)信息監(jiān)控mysql的主從同步曲線5 SQL監(jiān)控SQL監(jiān)控,主要是監(jiān)控和分析SQL語句5.1 SQL統(tǒng)計(jì)按用戶統(tǒng)計(jì)SQL讀寫比例,時(shí)間分布耗時(shí)。Mycat serv
19、er命令行輸入:show sql.sum如圖所示:5.2 SQL表統(tǒng)計(jì)統(tǒng)計(jì)表的讀寫比例,表之間的關(guān)系;Mycat server命令行輸入:show sql.sum.table如圖所示:5.3 SQL監(jiān)控監(jiān)控業(yè)務(wù)系統(tǒng)執(zhí)行的SQL語句,默認(rèn)50條;Mycat server命令行輸入:show sql如圖所示:5.4 高頻SQLSQL進(jìn)過歸并,統(tǒng)計(jì)執(zhí)行頻率高的SQL語句;Mycat server命令行輸入:show sql.high如圖所示:5.5 慢SQL統(tǒng)計(jì)默認(rèn)查詢耗時(shí)1000ms的SQL語句,Mycat server命令行輸入:show sql.slow如圖所示:5.6 SQL解析解析SQL語
20、句,分2步執(zhí)行;第一步:explain 解析SQL語句的路由信息第二步: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 版本中為用戶登錄所使用的登錄密碼提供了加密功能;目前支持的加密方式有兩種,分別是前段加密和后端加密。在這簡(jiǎn)單介紹前
21、段加密和后端加密的區(qū)別:前段加密是對(duì)mycat用戶登錄到 Mycat-Server 所需要輸入的密碼進(jìn)行加密 ;而后端加密則是指,Mycat-Server 中的 dataHost dataHost 是mycat邏輯庫(kù)中最底層的,與具體的數(shù)據(jù)庫(kù)實(shí)例一一對(duì)應(yīng)訪問后端數(shù)據(jù)庫(kù)實(shí)例的時(shí)候的所需登錄密碼進(jìn)行加密;不過,無論是前段加密還是后端加密,加密功能的開啟都與 usingDecrypt 這個(gè)屬性值的設(shè)定相關(guān);如果將 usingDecrypt 屬性值設(shè)定為 1 , 則說明開啟前(或后)端加密;如果將 usingDecrypt 屬性值設(shè)定為 0 , 則說明關(guān)閉前(或后)端加密;同樣,無論前后端加密登錄,基
22、本流程都是,開啟密碼加密功能; 執(zhí)行 java 命令對(duì)密碼進(jìn)行加密操作; 將生成的加密序列拷貝到 server.xml ;用戶密碼子標(biāo)簽中; 根據(jù)開啟加密功能的用戶名稱和未加密密碼來遠(yuǎn)程登錄服務(wù)器端, 上述這幾個(gè)步驟1前端加密這里我們?cè)O(shè)定用戶名稱為 userA ,因?yàn)閷?duì)密碼進(jìn)行加密,所以,在這里不需要在 <user> 的子標(biāo)簽中通過 <property> 屬性標(biāo)簽來指定password ,僅需要設(shè)定用戶名稱和通過將 usingDecrypt 屬性值置為 1 來開啟加密功能即可:# 配置文件 server.xml 的配置如下# 開啟加密功能的 Mycat-Server 啟
23、動(dòng)方式 #1.首先,打開命令窗口,切換路徑到,下載文件包的 ./mycat-1.4.1-dev/mycat/lib 目錄下 #2. 執(zhí)行命令對(duì)用戶輸入的密碼加密生成加密數(shù)列 如果想為名為 userA , 密碼為 32167 的用戶前段加密的話,輸入命令: java -cp Mycat-server-1.4.1-dev.jar org.opencloudb.util.DecryptUtil 0:userA:32167 (回車) 這里的 0:userA:32167 分別對(duì)應(yīng)的是 <加密方式:0 前端加密, 1 后端加密><server.xml 文件中定義的用戶名><明
24、文密碼> (注意,用戶 userA 需要在 server.xml 中創(chuàng)建好) 在命令行中會(huì)顯示出已經(jīng)加密的數(shù)列序,即,密文密碼 #3. 將生成的數(shù)列序號(hào)拷貝到 server.xml 對(duì)應(yīng)用戶 userA 的子標(biāo)簽中,完成對(duì) server.xml 的配置, 如下所示#4. 運(yùn)行啟動(dòng) Mycat-Server 的腳本來啟動(dòng)Mycat 服務(wù)器 #5. 打開一個(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. 編寫 schema.xml 配置文件,具體配置如下所示:在上述的配置文件中,我們創(chuàng)建了一個(gè)名為 userB 向數(shù)據(jù)庫(kù)實(shí)例執(zhí)行寫操作的 host ,并且該 host 連接到后端數(shù)據(jù)庫(kù)實(shí)例的時(shí)候,通過 usingDecrypt 參數(shù)設(shè)定為 1 來開啟對(duì)密碼加密的功能 #2. 運(yùn)行 java 命令,來對(duì)密碼加密生成加密序列數(shù)(目錄路徑同上為 ./mycat-1.4.1-dev/mycat/lib 路徑下面) 命令: java -cp Mycat-s
26、erver-1.4.1-dev.jar org.opencloudb.util.DecryptUtil 1:userB:root:32167#3. 將生成的密文密碼用來完善 schema.xml 配置文件,具體配置如下圖所示:#4. 運(yùn)行bin 目錄下面的啟動(dòng)腳本來啟動(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 之后,開啟新窗口,既可以前端加密的方式來登錄,也可以設(shè)定明文密碼的方
27、式來登錄, 在這里我們繼續(xù)使用上述介紹的前端加密的方式來登錄 也就是在 server.xml 配置文件中保留原有的配置,并且在登錄要求輸入登錄密碼的時(shí),輸入未加密的明文密碼 32167 即可連通成功權(quán)限管理IP白名單 /SQL黑名單IP白名單和SQL黑名單說明:- ip白名單-<quarantine><whitehost><host user="mycat" host=""></host> ip白名單 用戶對(duì)應(yīng)的可以訪問的ip地址</whitehost><blacklis
28、t check="true"><property name="selelctAllow">false</property> 黑名單允許的 權(quán)限 后面為默認(rèn)</blacklist></quarantine>-黑名單允許的 權(quán)限 后面為默認(rèn)-配置項(xiàng)缺省值描述selelctAllowtrue是否允許執(zhí)行SELECT語句selectAllColumnAllowtrue是否允許執(zhí)行SELECT * FROM T這樣的語句。如果設(shè)置為false,不允許執(zhí)行select * from t,但select * fro
29、m (select id, name from t) a。這個(gè)選項(xiàng)是防御程序通過調(diào)用select *獲得數(shù)據(jù)表的結(jié)構(gòu)信息。selectIntoAllowtrueSELECT查詢中是否允許INTO字句deleteAllowtrue是否允許執(zhí)行DELETE語句updateAllowtrue是否允許執(zhí)行UPDATE語句insertAllowtrue是否允許執(zhí)行INSERT語句replaceAllowtrue是否允許執(zhí)行REPLACE語句mergeAllowtrue是否允許執(zhí)行MERGE語句,這個(gè)只在Oracle中有用callAllowtrue是否允許通過jdbc的call語法調(diào)用存儲(chǔ)過程setAll
30、owtrue是否允許使用SET語法truncateAllowtruetruncate語句是危險(xiǎn),缺省打開,若需要自行關(guān)閉createTableAllowtrue是否允許創(chuàng)建表alterTableAllowtrue是否允許執(zhí)行Alter Table語句dropTableAllowtrue是否允許修改表commentAllowfalse是否允許語句中存在注釋,Oracle的用戶不用擔(dān)心,Wall能夠識(shí)別hints和注釋的區(qū)別noneBaseStatementAllowfalse是否允許非以上基本語句的其他語句,缺省關(guān)閉,通過這個(gè)選項(xiàng)就能夠屏蔽DDL。multiStatementAllowfalse
31、是否允許一次執(zhí)行多條語句,缺省關(guān)閉useAllowtrue是否允許執(zhí)行mysql的use語句,缺省打開describeAllowtrue是否允許執(zhí)行mysql的describe語句,缺省打開showAllowtrue是否允許執(zhí)行mysql的show語句,缺省打開commitAllowtrue是否允許執(zhí)行commit操作rollbackAllowtrue是否允許執(zhí)行roll back操作如果把selectIntoAllow、deleteAllow、updateAllow、insertAllow、mergeAllow都設(shè)置為false,這就是一個(gè)只讀數(shù)據(jù)源了。攔截配置永真條件配置項(xiàng)缺省值描述sel
32、ectWhereAlwayTrueChecktrue檢查SELECT語句的WHERE子句是否是一個(gè)永真條件selectHavingAlwayTrueChecktrue檢查SELECT語句的HAVING子句是否是一個(gè)永真條件deleteWhereAlwayTrueChecktrue檢查DELETE語句的WHERE子句是否是一個(gè)永真條件deleteWhereNoneCheckfalse檢查DELETE語句是否無where條件,這是有風(fēng)險(xiǎn)的,但不是SQL注入類型的風(fēng)險(xiǎn)updateWhereAlayTrueChecktrue檢查UPDATE語句的WHERE子句是否是一個(gè)永真條件updateWhereN
33、oneCheckfalse檢查UPDATE語句是否無where條件,這是有風(fēng)險(xiǎn)的,但不是SQL注入類型的風(fēng)險(xiǎn)conditionAndAlwayTrueAllowfalse檢查查詢條件(WHERE/HAVING子句)中是否包含AND永真條件conditionAndAlwayFalseAllowfalse檢查查詢條件(WHERE/HAVING子句)中是否包含AND永假條件conditionLikeTrueAllowtrue檢查查詢條件(WHERE/HAVING子句)中是否包含LIKE永真條件其他攔截配置配置項(xiàng)缺省值描述selectIntoOutfileAllowfalseSELECT . INTO
34、 OUTFILE 是否允許,這個(gè)是mysql注入攻擊的常見手段,缺省是禁止的selectUnionChecktrue檢測(cè)SELECT UNIONselectMinusChecktrue檢測(cè)SELECT MINUSselectExceptChecktrue檢測(cè)SELECT EXCEPTselectIntersectChecktrue檢測(cè)SELECT INTERSECTmustParameterizedfalse是否必須參數(shù)化,如果為True,則不允許類似WHERE ID = 1這種不參數(shù)化的SQLstrictSyntaxChecktrue是否進(jìn)行嚴(yán)格的語法檢測(cè),Druid SQL Parser在
35、某些場(chǎng)景不能覆蓋所有的SQL語法,出現(xiàn)解析SQL出錯(cuò),可以臨時(shí)把這個(gè)選項(xiàng)設(shè)置為false,同時(shí)把SQL反饋給Druid的開發(fā)者。conditionOpXorAllowfalse查詢條件中是否允許有XOR條件。XOR不常用,很難判斷永真或者永假,缺省不允許。conditionOpBitwseAllowtrue查詢條件中是否允許有"&"、""、"|"、""運(yùn)算符。conditionDoubleConstAllowfalse查詢條件中是否允許連續(xù)兩個(gè)常量運(yùn)算表達(dá)式minusAllowtrue是否允許SELECT
36、* FROM A MINUS SELECT * FROM B這樣的語句intersectAllowtrue是否允許SELECT * FROM A INTERSECT SELECT * FROM B這樣的語句constArithmeticAllowtrue攔截常量運(yùn)算的條件,比如說WHERE FID = 3 - 1,其中"3 - 1"是常量運(yùn)算表達(dá)式。limitZeroAllowfalse是否允許limit 0這樣的語句禁用對(duì)象檢測(cè)配置配置項(xiàng)缺省值描述tableChecktrue檢測(cè)是否使用了禁用的表schemaChecktrue檢測(cè)是否使用了禁用的Schemafunctio
37、nChecktrue檢測(cè)是否使用了禁用的函數(shù)objectChecktrue檢測(cè)是否使用了“禁用對(duì)對(duì)象”variantChecktrue檢測(cè)是否使用了“禁用的變量”readOnlyTables空指定的表只讀,不能夠在SELECT INTO、DELETE、UPDATE、INSERT、MERGE中作為"被修改表"出現(xiàn)新增IP限制登陸功能,與mysql賬號(hào)授權(quán)指定IP段類似,下面介紹用法。 在server.xml添加信任IP /SQL黑名單示例:只允許xx IP的主機(jī)登陸,并且不允許執(zhí)行SELECT *操作<quarantine><whitehost><
38、;host 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 端口,用來向用戶展示處于工作狀態(tài)的 Mycat-Server 的各項(xiàng)系統(tǒng)參數(shù) 通常用于重新設(shè)定 Mycat-Server 系統(tǒng)參數(shù)之后,查看設(shè)定是否生效參數(shù): 無參數(shù)示例: # 首先啟動(dòng) Mycat-Server ,然后打開命令窗口遠(yuǎn)程連接到 Mycat-Server 上 mysql -utest -p -P9066 -hlocalhost # 輸入 show sysparam ; 即可顯示系統(tǒng)參數(shù)信息# 使用 show help 可顯示 show sysparam 使用說明show系
40、統(tǒng)日志+-命令: show syslog limit端口號(hào):該命令工作在 9066 端口,用來在客戶端命令窗口顯示系統(tǒng)日志信息, 通常用于遠(yuǎn)程查看Mycat-Server 的日志信息參數(shù): limit= 后接正整數(shù),該數(shù)值用來限定每次最多顯示的日志條數(shù)示例:# 啟動(dòng) Mycat-Server ,打開命令端口遠(yuǎn)程連接 Mycat-Server mysql -utest -p -P9066 -hlocalhost # 輸入命令 show syslog limit=10 ; 即可顯示最多 10 行 Mycat-Server 日志記錄信息 # 使用 show help ; 命令可查看該命令的功能描述信
41、息Sql/SlowSql/SqlNum 統(tǒng)計(jì)命令1、清除緩存命令: reloaduser_stat 端口號(hào): 該命令工作在 9066 端口,用來將客戶端執(zhí)行 show sql ; show sql.sum ; show slow.success ;命令之后所緩存的信息清空;參數(shù): 無參數(shù)2、Sql 統(tǒng)計(jì)示例示例:# 啟動(dòng) Mycat-Server , # 打開命令端口遠(yuǎn)程連接 Mycat-Server 的管理端口mysql -utest -p -P9066 -hlocalhost # 再打開一個(gè)新的命令端口,遠(yuǎn)程連接 Mycat-Server 的SQL操作端口mysql -utest -p -
42、P8066 -hlocalhost # 在 8066 端口命令窗口中執(zhí)行 SQL 語句操作,然后在 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 ; 該命令,
43、則會(huì)顯示 "Empty set <0.00 sec>" 的提示信息 # 使用 show help ; 該命令可以查看該功能的描述信息+-命令: show sql ;端口號(hào): 該命令工作在 9066 端口,用來記錄用戶通過本地 8066 端口向 Mycat-Server發(fā)送的 SQL 請(qǐng)求執(zhí)行信息 信息包括有 ID 值,執(zhí)行SQL語句的用戶名稱,執(zhí)行的 SQL 語句,命令執(zhí)行的起始時(shí)間,命令執(zhí)行消耗時(shí)間 參數(shù): 無參數(shù)示例: # 啟動(dòng) Mycat-Server , # 打開命令端口遠(yuǎn)程連接 Mycat-Server 的管理端口mysql -utest -p -P9
44、066 -hlocalhost # 再打開一個(gè)新的命令端口,遠(yuǎn)程連接 Mycat-Server 的SQL操作端口mysql -utest -p -P8066 -hlocalhost # 在 8066 連接的命令窗口中根據(jù)本地?cái)?shù)據(jù)庫(kù)表,輸入相關(guān)的 SQL 語句 select * from TESTDB.company ; # 在 9066 連接的命令窗口輸入命令 show sql ; 將會(huì)顯示出剛剛執(zhí)行 SQL 語句詳細(xì)的相關(guān)信息,ID指的是? USER 是通過 8066 遠(yuǎn)程連接到 Mycat-Server 的用戶名稱; START_TIME, EXECUTE_TIME 分別是SQL語句的起始
45、時(shí)間和從開始到結(jié)束命令執(zhí)行消耗總時(shí)間。 +-命令: show sql.slow ;端口號(hào): 該命令工作在 9066 端口,是用來將用戶通過 8066 端口向Mycat-Server 發(fā)送的請(qǐng)求執(zhí)行 SQL 語句中超過慢 SQL 時(shí)間閾值的 SQL 語句信息 ; 在這里首先應(yīng)該明確的是何為'慢 SQL' , 所謂的慢 SQL 是執(zhí)行時(shí)間相對(duì)時(shí)間閾值耗時(shí)較長(zhǎng)的SQL語句,在 mycat-1.4.1 版本中 增設(shè)該功能是為了方便用戶從本地執(zhí)行的 SQL 命令中篩選出耗時(shí)較長(zhǎng)的 SQL 語句出來,針對(duì)耗時(shí)長(zhǎng)的 SQL 語句做出優(yōu)化處理。 那么如何設(shè)定'慢SQL' 的時(shí)間
46、閾值呢? 這個(gè)命令稍后立即會(huì)介紹給大家參數(shù): 無參數(shù)示例: # 啟動(dòng) Mycat-Server , # 打開命令端口遠(yuǎn)程連接 Mycat-Server 的管理端口mysql -utest -p -P9066 -hlocalhost # 再打開一個(gè)新的命令端口,遠(yuǎn)程連接 Mycat-Server 的SQL操作端口mysql -utest -p -P8066 -hlocalhost # 為了方便演示,我們?cè)?9066 端口中將'慢SQL' 的時(shí)間閾值設(shè)定為 0 (ms) (這樣無論執(zhí)行那種 SQL 語句,相關(guān)信息均會(huì)被當(dāng)做慢 SQL 信息記錄下來) reload sqlslow=0 ; # 是的這條命令就是剛才提到的'如何設(shè)定慢 SQL' 時(shí)間閾值的命令# 然后切換到 8066 端口,根據(jù)本地?cái)?shù)據(jù)庫(kù)的情況執(zhí)行一條 SQL 語句 select * from TESTDB.company ;# 再將窗口切換到 9066 端口中,輸入如下命令show sql.slow ; # 值得注意的地方就是,現(xiàn)在 9066 窗口中顯示出來的信息,是從設(shè)定閾值之后的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 宣傳用品租賃終止合同
- 無人駕駛技術(shù)董事長(zhǎng)招聘合同
- 印刷計(jì)量管理規(guī)定
- 電子產(chǎn)品招投標(biāo)流程與合同定價(jià)
- 進(jìn)入高三勵(lì)志演講稿簡(jiǎn)短(10篇)
- 熱能工程顧問聘用協(xié)議
- 軟件測(cè)試與項(xiàng)目管理服務(wù)協(xié)議
- 志愿者的教育工作者心得體會(huì)(14篇)
- 無人機(jī)巡線技術(shù)服務(wù)合同
- 教學(xué)設(shè)備租賃擔(dān)保合同
- 暖通工程師面試試題(含答案)
- 行政服務(wù)中心窗口工作人員手冊(cè)
- 最新患者用藥情況監(jiān)測(cè)
- 試樁施工方案 (完整版)
- ESTIC-AU40使用說明書(中文100版)(共138頁)
- 河北省2012土建定額說明及計(jì)算規(guī)則(含定額總說明)解讀
- 中工商計(jì)算公式匯總.doc
- 深圳市建筑裝飾工程消耗量標(biāo)準(zhǔn)(第三版)2003
- 《初中英語課堂教學(xué)學(xué)困生轉(zhuǎn)化個(gè)案研究》開題報(bào)告
- 恒溫箱PLC控制系統(tǒng)畢業(yè)設(shè)計(jì)
- 176033山西《裝飾工程預(yù)算定額》定額說明及計(jì)算規(guī)則
評(píng)論
0/150
提交評(píng)論