天天看點

如何連接配接oceanbase資料庫

oceanbase是完全相容MySQL協定的,之前的文章中也提起到過,是以oceanbase的連接配接方式也是跟MySQL一樣的,需要安裝MySQL用戶端,采用ip+端口+使用者@tenant+密碼的方式連結。

mysql -h -uxxxx@tenant -pxxxx -P8306

-h ob叢集所在VIP 

-u@tenant 使用者以及租戶名字

-p 密碼

-P 端口

之前遇到個使用者無法連接配接到ob資料庫問題,報錯如下:

哪種資料庫都可能出現連接配接不到資料庫的情況,可能是叢集挂了,可能是網絡有問題,我們看一下這是啥問題。

首先oceanbase是采用叢集,如下圖,總共有三個副本,也就是三個zone。zone内由不同的server組成,而連接配接這些server對外提供服務的是通過外面的proxy。

如何連接配接oceanbase資料庫

而這有可能是obproxy的啟動方式問題,proxy不是通過configg server url啟動的, 直接使用rs list啟動的,是以使用者登入時, 要麼不指定叢集名登入(proxy使用預設的obcloud), 或者使用obcloud叢集登入。

1. client通過proxy通路ob時, 如果proxy後端隻有一個叢集, 可以使用者為username@tenantname, 如果是多個叢集, 需要指定叢集名;

2. 假定使用者傳入的叢集名為A, 那麼Proxy首先從config server url的json内容中查找是否有該叢集, 如果有則登入該叢集observer 

3. proxy在叢集名校驗開關打開的情況下(預設開), 通路observer時校驗使用者傳入的叢集名和ob的叢集名是否一緻, 不一緻報錯。

ob連接配接資料庫其實需要輸入的資訊較MySQL來說隻是多了一個tenant,,因為在ob裡面資源劃分是按照租戶為粒度來劃分的,每個租戶資源是隔離的,也就是說這塊資源當初劃分給了一個租戶,那麼這個租戶就會獨占這部分資源,即使别的租戶這時候cpu用滿了,也不可以使用到另外一個租戶的資源。

既然擁有MySQL一樣的指令行連接配接方式,那麼大部分的MySQL用戶端工具也是可以連接配接oceanbase的。比如navicate等等的。

希望大家都可以弄個雲端的ob搞一搞玩一玩。