2014-09-04 95 views
1

我有一個本地運行的cassandra db。我可以看到它在Ops Center中工作。但是,當我打開開發中心並嘗試連接時,我得到一個神祕的「無法連接」錯誤。如何連接到本地cassandra db

如何獲得我需要通過開發中心連接到本地cassandra db的確切名稱/連接字符串?

+0

哪個版本卡桑德拉您使用的是? – 2014-09-05 02:11:25

+1

你的cassandra.yaml中的「listen_address」的值是什麼? – Aaron 2014-09-05 03:51:09

+1

'cqlsh'在你的終端上工作嗎? – phact 2014-09-07 16:32:33

回答

3

的主機名/ IP對在您cassandra.yaml.If要連接到卡桑德拉從本地主機只(沙箱機)的listen_address屬性指定連接,然後就可以設置listen_address在cassandra.yaml因此:

listen_address: localhost 

當您啓動卡桑德拉,你應該看到無論是在標準輸出或在您的SYSTEM.LOG與此類似線(爲簡潔,刪除時間戳):

Starting listening for CQL clients on localhost/127.0.0.1:9042... 
Binding thrift service to localhost/127.0.0.1:9160 
Listening for thrift clients... 

這些線指示哪些加你應該使用連接到你的集羣。測試連接的第一種方法是使用clqsh。請注意,默認情況下,cqlsh將連接到「localhost」。如果要連接到除localhost之外的主機/ IP,則需要在命令行上指定它。

$ cqlsh 
Connected to Test Cluster at localhost:9042. 
[cqlsh 5.0.1 | Cassandra 2.1.0-rc5-SNAPSHOT | CQL spec 3.2.0 | Native protocol v3] 
Use HELP for help. 
cqlsh> 

如果一切正常,那麼你也應該能夠連接(和測試)由DataStax開發中心(也是你的本地計算機上)通過定義爲localhost的連接,就像這樣:

enter image description here

在這一點上,你應該能夠通過你的應用程序代碼連接(如圖所示的Java CQL3司機):

cluster = Cluster.builder().addContactPoint("localhost").build(); 
Metadata metadata = cluster.Metadata; 
Console.WriteLine("Connected to cluster: " + metadata.ClusterName.ToString()); 
Session session = cluster.connect();