我在服务器(serv1)上运行cassandra服务器。 cassandra-cli可以在serv1上运行时连接到它。但是,当我尝试通过其他服务器(serv2)连接到它时,我得到以下异常:
org.apache.thrift.transport.TTransportException: java.net.ConnectException: Connection refused
at org.apache.thrift.transport.TSocket.open(TSocket.java:183)
at org.apache.thrift.transport.TFramedTransport.open(TFramedTransport.java:81)
at org.apache.cassandra.cli.CliMain.connect(CliMain.java:80)
at org.apache.cassandra.cli.CliMain.main(CliMain.java:256)
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at org.apache.thrift.transport.TSocket.open(TSocket.java:178)
... 3 more
Exception connecting to jckstore/9160. Reason: Connection refused.
我查看了cassandra.yaml,发现属性“listen_address”配置为“localhost”,严禁使用0.0.0.0。我试图将localhost更改为serv2,serv1的ip地址,但没有任何效果。即使发表评论也没有帮助。
有没有办法可以让我的cassandra服务器监听所有的ip而不使用0.0.0.0
答案 0 :(得分:12)
我能够解决以下问题:
然后我可以访问。
答案 1 :(得分:4)
Cassandra cli使用thrift连接到Cassandra。 rpc_address决定thrift客户端如何连接到Cassandra。将其设置为0.0.0.0将起作用,但将其设置为服务器的主机名,然后使用相同的主机名进行连接也将起作用。
答案 2 :(得分:0)
我也遇到了同样的问题,因为配置正确,我总是感到惊讶。最后,我发现这是许可问题:
chown -R cassandra: /var/lib/cassandra
chown -R cassandra: /var/log/cassandra
希望它有所帮助: - )
答案 3 :(得分:0)
我遇到了同样的问题。我通过更新snappy temp dir VM选项来指向正确的目录来解决这个问题。
VM_OPTS="$JVM_OPTS -Dorg.xerial.snappy.tempdir=/home/users/local/user/cassandra_home/snap
希望这有帮助!
答案 4 :(得分:0)
我也有同样的问题“拒绝连接”。将rpc_address从“localhost”更改为与listen_address相同的主机名为我工作。
答案 5 :(得分:0)
我也有同样的问题"连接被拒绝"。将start_rpc:更改为true为我修复了它。