分散式資料庫中介軟體 MyCat 搞起來!
MyCat 簡介
如果資料量比較大的話,我們需要對資料進行分庫分表,分完之後,原本存在一個資料庫中的資料,現在就存在多個資料庫中了,就像下面這樣:
那麼此時 MyCat 所扮演的角色就是分散式資料庫中介軟體!
MyCat 是一個開源的分散式資料庫中介軟體,它實現了 MySQL 協議,在開發者眼裡,他就是一個資料庫代理,我們甚至可以使用 MySQL 的客戶端工具以及命令列來訪問 MyCat 。
MyCat 現在已經不僅僅只支援 MySQL 了,同時也支援 MSSQL、Oracle、DB2、以及 PostgreSQL等主流資料庫。甚至像 MongoDB 這種 NoSQL 也支援。
快速入門
搭建讀寫分離
要搞 MyCat ,一般要先搭建好 MySQL 的讀寫分離,MySQL 的讀寫分離可以參考松哥之前的這篇文章:
提高效能,MySQL 讀寫分離環境搭建(二)
MyCat 安裝
環境:
CentOS7
JDK1.8
MyCat 使用 Java 開發,因此,執行 MyCat ,一定要具備 Java 環境,配置 Java 執行環境這個比較容易,網上資料也很多,我就不詳細介紹了。
Java 環境安裝好之後,首先下載 MyCat:
wget
下載完成後,對下載檔案進行解壓。
tar -zxvf Mycat-server-1.6.7.1-release-20190213150257-linux.tar.gz
解壓成功後,會出現一個 mycat
目錄,進入到 mycat/conf
目錄,對 mycat
進行配置:
首先來配置 schema.xml
檔案:
首先在
schema
中指定邏輯庫的名字,邏輯庫是指MyCat
中的庫,這個庫不儲存資料,資料儲存在MySQL
中的物理庫中。邏輯庫中配置邏輯表,配置邏輯表時,需要指定
dataNode
節點,dataNode
就是指資料庫儲存的位置配置
dataNode
,dataNode
指定dataHost
和物理庫的名字。dataHost
則配置MySQL
的主機和從機的位置,登入密碼等。主機和從機都可以配置多個。
配置完 schema.xml 後 ,接下來配置 server.xml。
server.xml 中主要配置 MyCat 的登入使用者名稱和密碼,以及需要操作的邏輯庫。
配置完成後,接下來就可以啟動 MyCat 了 。
執行 MyCat 解壓目錄下的 bin 目錄下的 mycat 命令,可以啟動 MyCat
./bin/mycat start
如果啟動後,提示無法建立 mycat.pid
檔案,就自己手動建立一個 mycat.pid
檔案。啟動成功之後,就可以在本地連線 MyCat
了,連線方式和 MySQL
一樣,唯一的區別在於埠號不同。
在連線 MyCat
之前,先在 MySQL
物理庫中建立 db1
、 db2
以及 db3
三個資料庫。
使用 SQLyog
連線:
也可以在 cmd
命令列登入 MyCat
:
登入成功後 ,在 MyCat
的視窗中,執行如下命令,建立表:
create table t_user (id integer primary key,username varchar(255))
執行成功後,我們會發現物理庫中出現了相應的表。接下來,手動往各個物理庫的物理表中儲存一條資料,然後在 MyCat 視窗中查詢:
這樣就可以查詢到 三個庫中的三個表中的資料。
問題分析
整個過程不難,但是有的小夥伴在第一次配置的過程中還是容易出錯,因此我這裡還是來說兩句,出錯了要如何定位。
一般來說,配置 MyCat 出錯,問題可能發生在兩個階段。第一個階段就是客戶端連線 MyCat 出錯,第二個階段就是 MyCat 連線 MySQL 出錯。
無論你是使用 SQLyog 還是 Navicat ,我們在連線資料庫的過程中,都可以先測試連線,很多人卡在這一步。
如果在測試連線的時候就連線不通,說明是 MyCat 的問題,這個時候檢查步驟如下:
首先當然是檢視日誌資訊,看能不能找出端倪
透過 jps 命令檢視 mycat 是否成功啟動
檢查 server.xml 中配置是否正確,使用者名稱密碼是否輸入正確
這是第一種可能的問題,第二種問題就是測試連線沒問題,但是測試完後,卻連線不上。反映到 Navicat 上,就是測試連線沒問題,測完之後,點選連線名要開啟連線時,Navicat 就崩了,出現這個問題一般是 MyCat 在連線 MySQL 出問題了,這個時候就要去檢查 schema.xml 檔案中關於 MySQL 主機和從機的配置是否正確,資料庫地址是否正確,使用者名稱密碼是否正確。
結語
好了,本文主要簡單介紹了下 MyCat 的安裝問題,下篇文章我們來看 MyCat 中的分片規則問題。
參考資料:
MyCat 官方文件
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024922/viewspace-2927003/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 分散式資料庫中介軟體 MyCat | 分庫分表實踐分散式資料庫
- MyCat的坑如何在分散式中介軟體DBLE上改善分散式
- 資料庫路由中介軟體MyCat - 原始碼篇(15)資料庫路由原始碼
- 資料庫中介軟體 MyCAT 原始碼分析 —— 跨庫兩表Join資料庫原始碼
- Mycat中介軟體實現Mysql資料分片( 下篇)MySql
- Mycat中介軟體實現Mysql資料分片(上篇)MySql
- 原生分散式資料庫與子資料庫子表中介軟體的區別分散式資料庫
- 【筆記】分散式Oracle資料庫中介軟體的核心作用筆記分散式Oracle資料庫
- 分散式訊息中介軟體分散式
- 資料庫中介軟體 MyCAT原始碼分析:【單庫單表】插入【推薦閱讀】資料庫原始碼
- 分散式資料庫中介軟體的實現原理介紹一:分庫分表分散式資料庫
- 資料庫中介軟體 MyCAT原始碼分析:【單庫單表】查詢【推薦閱讀】資料庫原始碼
- 資料庫中介軟體詳解資料庫
- Apache ShardingSphere:由開源驅動的分散式資料庫中介軟體生態Apache分散式資料庫
- 中介軟體---分散式跟蹤---Pinpoint分散式
- MyCat 讀寫分離 資料庫分庫分表 中介軟體 安裝部署,及簡單使用資料庫
- ShardingSphere x Seata,一致性更強的分散式資料庫中介軟體分散式資料庫
- 中介軟體---分散式任務排程---Celery分散式
- LAF-DTX分散式事務中介軟體分散式
- 阿里開源Mysql分散式中介軟體:Cobar阿里MySql分散式
- 淘寶分散式訊息中介軟體Metaq 1.4.3分散式
- MyCat 啟蒙:分散式系統的資料庫架構演變分散式資料庫架構
- 深入理解阿里分散式訊息中介軟體阿里分散式
- 分散式關係型資料庫RadonDB體驗歸來分散式資料庫
- 如何設計一個資料庫中介軟體資料庫
- 壓測資料庫中介軟體的注意點資料庫
- 資料庫的未來:雲原生+分散式資料庫分散式
- 分散式事務中介軟體Seata的設計原理分散式
- 分散式資料庫分散式資料庫
- 搜狐開源資料庫中介軟體 SOHU-DBProxy資料庫
- 阿里分散式資料庫未來技術之路阿里分散式資料庫
- (二) MdbCluster分散式記憶體資料庫——分散式架構1分散式記憶體資料庫架構
- Mycat中介軟體實現Percona Cluster讀寫分離
- Mycat中介軟體實現Mysql主從讀寫分離MySql
- 滴滴開源分散式訊息中介軟體產品DDMQ分散式MQ
- 搭建JEESZ分散式架構--訊息中介軟體簡介分散式架構
- 資料庫系列:業內主流MySQL資料中介軟體梳理資料庫MySql
- 東方通中介軟體Tongweb適配瀚高資料庫Web資料庫