1、MyCat入門
1.Mycat簡介
[1].Mycat是什麼
Mycat 是數據庫中間件
[2].why使用Mycat
①.Java與數據庫緊耦合
②.高訪問量高並發對數據庫的壓力
③.讀寫請求數據不一致
[3].數據庫中間件
[3].Mycat官網
[4].Mycat作用
(1).讀寫分離
(2).數據分片
垂直拆分(分庫)、水平拆分(分表)、垂直+水平拆分(分庫分表)
(3).多數據源整合
[5].Mycat原理
Mycat 的原理中最重要的一個動詞是「攔截」,它攔截了用戶發送過來的 SQL 語句,首先對SQL語句做了一些特定的分析:如分片分析、路由分析、讀寫分離分析、緩存分析等,然後將此 SQL 發往後端的真實數據庫,並將返回的結果做適當的處理,最終再返回給用戶。
這種方式把數據庫的分佈式從代碼中解耦出來,程序員察覺不出來後台使用 Mycat 還是MySQL。
2.Mycat安裝啟動
[1].解壓後即可使用
解壓縮文件拷貝到 linux 下 /usr/local/
(1)將tar包放到Linux的/opt
(2)解壓Mycat
[root@pluto opt]# cd /opt/ [root@pluto opt]# tar -zxvf Mycat-server-1.6.7.1-release-20190627191042-linux.tar.gz |
(3)複製Mycat到/usr/local/
因為mycat是目錄,所以我們需要-r遞歸參數
[root@pluto mycat]# cp -r /opt/mycat/ /usr/local/ |
(4)配置文件
schema.xml:定義邏輯庫,表、分片節點等內容
rule.xml:定義分片規則
server.xml:定義用戶以及系統相關變量,如端口等
1)server.xml
修改用戶信息,與MySQL區分
<user name=”mycat” defaultAccount=”true”> <property name=”password”>123456</property> <property name=”schemas”>TESTDB</property> </user> |
2)schema.xml
刪除<schema>標籤間的表信息,<dataNode>標籤只留一個,<dataHost>標籤只留一個,<writeHost> <readHost>只留一對
[root@pluto 桌面]# vim /usr/local/mycat/conf/schema.xml |
<?xml version=”1.0″?> <!DOCTYPE mycat:schema SYSTEM “schema.dtd”> <mycat:schema xmlns:mycat=”//io.mycat/”>
<schema name=”TESTDB” checkSQLschema=”false” sqlMaxLimit=”100″ dataNode=”dn1″> </schema> <dataNode name=”dn1” dataHost=”host1″ database=”testdb” /> <dataHost name=”host1” maxCon=”1000″ minCon=”10″ balance=”0″ writeType=”0″ dbType=”mysql” dbDriver=”native” switchType=”1″ slaveThreshold=”100″> <heartbeat>select user()</heartbeat> <!– can have multi write hosts –> <writeHost host=”hostM1” url=”192.168.188.188:3306″ user=”root” password=”123456″> <!– can have multi read hosts –> <readHost host=”hostS2” url=”192.168.188.189:3306″ user=”root” password=”123456″ /> </writeHost> </dataHost> </mycat:schema> |
3).驗證數據庫
Mycat 作為數據庫中間件要和數據庫部署在不同機器上,所以要驗證遠程訪問情況。
mysql -uroot -p123123 -h 192.168.188.188 -P 3306 mysql -uroot -p123123 -h 192.168.188.189 -P 3306
#如遠程訪問報錯,請建對應用戶 grant all privileges on *.* to root@’%’ identified by ‘123456’; %代表全部用戶 |
[2].啟動mycat
[root@pluto bin]# pwd /usr/local/mycat/bin [root@pluto bin]# ./mycat console |
啟動mycat遇到的問題
//blog.csdn.net/chtjava/article/details/87078154 |
[3].登錄mycat
(1).登錄數據窗口
此登錄方式用於通過 Mycat 查詢數據,我們選擇這種方式訪問 Mycat
[root@host79 ~]# mysql -umycat -p123456 -h 192.168.188.188 -P 8066 |
(2).登錄後台管理窗口
[root@host79 ~]# mysql -umycat -p123456 -h 192.168.188.188 -P 9066 |