2016-07-24 75 views
1

我的主題行可能會說這是一個重複的問題,但它不是。我嘗試了所有可能的方式來搜索這個問題,但未能解決我的問題。無法從遠程主機連接到Cassandra

我在我的電腦上運行Windows 8.1。我已經使用Hyper-V將Ubuntu 16.04版本安裝爲VM。我在我的Ubuntu系統上安裝了Cassandra 3.7。

Cassandra能夠從本地主機,即從Ubuntu系統進行連接。我創建了keyspace和all,但是當我試圖從我的golang代碼連接Casandra時,我收到了錯誤消息。

包主要

import (
    "fmt" 
    "log" 

    "github.com/gocql/gocql" 
) 

func main() { 
    // connect to the cluster 
    cluster := gocql.NewCluster("192.168.137.217") //Put comma separated IPs in case of multiple cluster 
    cluster.Keyspace = "broker_keyspace" 
    cluster.Consistency = gocql.Quorum 
    session, _ := cluster.CreateSession() 
    defer session.Close() 
} 

192.168.137.217是我的虛擬機的IP地址。我得到的錯誤是說9042端口不允許連接。我試圖從我的Windows 8.1系統(這是Cassandra正在運行的虛擬機的主機)運行這段代碼。我曾嘗試telnet,發現9042端口沒有打開主機連接。

我開始玩cassandra.yaml配置文件,但現在它甚至沒有在Ubuntu系統上工作。我無法獲得使用的節點狀態

nodetool status 

我在我的cassandra.yaml文件中的通用配置如下。

rpc_address: localhost 
listen_address: localhost 

我也註釋掉在/etc/cassandra/cassandra-env.sh文件下面的線和更新公共名稱爲127.0.0.1。

# add this if you're having trouble connecting: 
JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=127.0.0.1" 

我重新開始使用服務卡桑德拉重啓卡桑德拉,但是當我試圖nodetool狀態它給下面的錯誤。

nodetool:無法連接到'127.0.0.1:7199' - ConnectException:'連接被拒絕'。

對不起,長期的問題,但請幫助我真的厭倦了這個問題,努力從最近6-7小時努力。

謝謝..

回答

1

您是否嘗試過不使用本地主機和實際使用192.168.137.217地址的一切 - JMX,RPC,聽等..?這會是一個問題嗎?另外,假設這只是您電腦上的一個虛擬機 - 也許檢查防火牆是否關閉?

+0

謝謝回答。我不得不再次安裝新的Cassandra版本。我確實改變了listen_address,broadcast_address到我提到的IP它開始工作。看起來像我做了一些配置更改,但未能恢復它。 –

0

您可以按照以下步驟來解決上述問題。

變化cassandra.yamletc/cassandra/cassandra.yaml

- start_rpc: true 
- rpc_address: 0.0.0.0 

以下參數,並取消

broadcast_rpc_address: 1.2.3.4 
相關問題