點擊有驚喜
oceanbase是完全相容MySQL協議的,之前的文章中也提起到過,所以oceanbase的串連方式也是跟MySQL一樣的,需要安裝MySQL用戶端,採用ip+連接埠+使用者@tenant+密碼的方式連結。 mysql -h -uxxxx@tenant -pxxxx -P8306 -h ob叢集所在VIP
-u@tenant 使用者以及租戶名字 -p 密碼 -P 連接埠
之前遇到個使用者無法串連到ob資料庫問題,報錯如下:
[ftpuser@fuggr~]mysql -h -uxxxx -pxxxx -p8306warning: using a password on the command line interface can be insecure.ERROR 2003:can't connect to mysql server on 'IP'
哪種資料庫都可能出現串連不到資料庫的情況,可能是叢集掛了,可能是網路有問題,我們看一下這是啥問題。 首先oceanbase是採用叢集,如下圖,總共有三個副本,也就是三個zone。zone內由不同的server組成,而串連這些server對外提供服務的是通過外面的proxy。
而這有可能是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搞一搞玩一玩。
點擊有驚喜