从远程计算机

时间:2016-05-27 14:17:16

标签: c# ubuntu cassandra nosql

我想请求您如何从远程计算机连接到我的Droplet上的Cassandra数据库。我做了本文中写的所有内容:Install Cassandra但是当我尝试从我的C#代码连接时:

cluster = Cassandra.Cluster.Builder()
    .WithCredentials("abc", "abc")
    .AddContactPoints(new[] { "12.34.56.78" })
    .WithPort(9168)
    .Build();

var session = cluster.Connect();
var keyspace = "Test";
session.CreateKeyspaceIfNotExists(keyspace);
session.ChangeKeyspace(keyspace);

我得到一个例外:

  

Cassandra.dll中的'Cassandra.NoHostAvailableException'

     

附加信息:没有尝试查询的主机可用   (尝试:12.34.56.78:9168)

我也尝试过像DBeaver这样的其他Cassandra GUI客户端,但是我遇到了同样的错误。

我的Droplet是Ubuntu 14.04。从localhost我对Cassandra没有任何问题我唯一的问题来自远程。

以下是

的结果
  

sudo netstat -plunt

Open Ports

为什么会这样,我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

您必须使用端口9042。

listen_interface用于设置节点间通信。

  

Cassandra绑定的IP地址或主机名,用于连接其他Cassandra节点。设置此参数或listen_interface,而不是两者。

您必须更改rpc_address然后重新启动cassandra守护程序

  

(默认值:localhost)客户端连接的侦听地址(Thrift RPC服务和本机传输)。有效值为:

答案 1 :(得分:0)

  

确保您可以在本地运行cqlsh,即从运行Cassandra的主机运行。如果不能,请检查Cassandra是否正在运行(检查日志)并侦听您要连接的接口。

     

如果您可以在本地连接,请检查您对Cassandra的rpc_address和rpc_broadcast_address的设置。它应设置为“localhost”之外的其他值(默认设置)。

     

默认情况下9042端口用于CQL,我建议你不要重置它。