MyCat 中間件具體做什麼的百度一下你就知道,本人只是記錄下自己踩的坑
建議:不懂的,可以先去看官網介紹,官網推出的文檔:mycat權威指南 不錯的。看人多看看,主要是理論知識點懂了就好,具體使用全是配置文件,因爲具體的數據擴容算法都是別人寫好的,我們只是copy,以下只是簡單的使用。
官網鏈接
前置條件
本教程是在window環境下運行的,實際生產推薦在Linux上運行。
必備條件(自行安裝,如果不會裝請先打好基礎在來學習):
- JDK:建議是1.7及其以上。
- MySQL:必須是5.5及其以上(最好是5.7,現在主流技術都支持5.7,版本低容易導致數據缺失)
下載地址:http://dl.mycat.io/1.6-RELEASE/
流程圖: mycat 中間件【展示的就是邏輯庫】
正式入門開始:
首先建立三個數據庫,創建表,其中tb_user不會拆分,只在db0上存在,role則放在兩個數據庫中 分別如下
這裏簡單介紹下 mycat的 主要使用的幾個配置文件
conf目錄下編輯service.xml,rule.xml,schema.xml三個文件。
service.xml:配置mycat 的用戶名密碼 數據庫名稱 對應到schema中的名稱
rule.xml:配置拆分規則
schema.xml:配置 數據節點,邏輯物理數據庫地址,拆分引入規則名稱對應到rule.xml
然後就可以啓動測試了
bin目錄下的 startup_nowrap.bat 雙擊就好
說一下遇到的坑(bug),因爲是mycat是java語言編寫的,具體報錯大家可以看控制檯或者log
Mycat查表報錯find no Route:select * from `db_user`.`users` limit 0, 100
修改schema.xml的 checkSQLschema=“false”,改爲true即可
當該值爲true時,例如我們執行語句select * from TESTDB.company 。mycat會把語句修改爲 select * from company 去掉TESTDB。
本人的navcat不知道爲啥有問題,鏈接mycat後查詢表數據總數不一致的。應該是我的個人問題,後面我用cmd 命令窗口看就沒問題
看本人的navcat 表數量就不一樣