我想请求您如何从远程计算机连接到我的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
为什么会这样,我该如何解决这个问题?
答案 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,我建议你不要重置它。