1、MyCat入門

1.Mycat簡介

[1].Mycat是什麼

  Mycat 是數據庫中間件

[2].why使用Mycat

  ①.Java與數據庫緊耦合

  ②.高訪問量高並發對數據庫的壓力

  ③.讀寫請求數據不一致

[3].數據庫中間件

 

[3].Mycat官網

   //www.mycat.org.cn/

[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/MAMAIMAI/article/details/104664129

//blog.csdn.net/weixin_44666068/article/details/105792473

//www.cnblogs.com/orcl-2018/p/13153865.html

//blog.csdn.net/chtjava/article/details/87078154

//www.xwood.net/_site_domain_/_root/5870/5874/t_c279894.html

 

 

//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

Tags: