2013-12-13 117 views
5

OS:CentOS的6.4(服務器)DataStax Devcenter無法連接到遠程卡桑德拉數據庫

我已成功安裝(YUM安裝DSC20)卡桑德拉數據庫層在我的服務器,並且可以使用CQL SHEL連接到它( cqlsh)。但我需要使用DataStax的DevCenter軟件遠程運行查詢。所以我將它(DevCenter)安裝在一個單獨的工作站中。 (CentOS 6.4 - 桌面),並試圖添加一個新的連接,以連接到cassandra分貝。

因此,我給出了主機和端口爲9160的「CentOS 6.4 - server」(其中cassandra數據庫正在運行)的IP。但是當測試連接失敗時。

我也嘗試關閉服務器中的防火牆(/etc/init.d/iptables stop)。但是沒有運氣。

我敢肯定這可能是由於一些錯誤配置,我不明白。我會很感激,如果有人能夠給我一個解決方案,因爲我正在爲此進行研究,但沒有找到答案。非常感謝你提前。

+0

什麼是'cassandra.yaml配置的rpc_address'選項?如果它只在本地主機上偵聽,則外部客戶端將無法連接。 –

+0

是的,它被配置爲'localhost'。但我試着給'0.0.0.0'。但是沒有運氣。任何想法?感謝您的答覆。 – Tharanga

+0

將它更改爲0.0.0.0(意味着在所有接口上偵聽),然後配置防火牆嗎? –

回答

4

構建在DataStax Java驅動程序之上的DataStax DevCenter具有相同的connectivity requirements as the driver。即:

  1. start_native_transport: true
  2. rpc_address:從所述客戶端IP或主機名可到達
  3. 機集羣中接受端口連接9042

如果rpc_address設定爲(所述native_transport_port配置選項)無論是私有IP還是0.0.0.0,DevCenter都不知道要連接哪個節點。

如果您的羣集有多個節點,並且這些節點使用rpc_address: 0.0.0.0,即使您使用兩個節點的IP配置DevCenter,它仍然會在發現羣集中的其他節點時遇到問題。

cassandra.yaml有評論/警告有關使用rpc_address: 0.0.0.0

注意,與上述的ListenAddress,它被允許,如果你想監聽所有接口在這裏指定0.0.0.0 ,但將打破依靠節點自動發現的客戶端 。

:它有可能在未來DevCenter也許能夠忽略/與rpc_address: 0.0.0.0配置的集羣中過濾掉的節點。

3

在cassandra.yaml,我設置

  1. listen_address:本地主機
  2. rpc_address:1.2.3.4
  3. broadcast_rpc_address:1.2.3。4

須藤服務卡桑德拉重啓後

DevCenter能夠成功連接。

此更改後,cqlsh不會啓動無地址:

cqlsh 1.2.3.4

您可以設置環境變量$ CQLSH_HOST = 1.2.3.4。然後只需輸入cqlsh

1

試試這個..它適合我!

運行您的計算機上運行以下命令,你必須DevCenter安裝

$> ssh -L 9042:localhost:9042 <username>@<ip-address-cassandra-db> -N 

運行這個命令之後,它會提示密碼

現在,在您DevCenter>聯繫主機,提供「127.0 .0.1「和測試連接。賓果,你看到了魔術......