Cassandra-cli cant connect to remote cassandra server

cassandra, java, nosql, thrift, thrift-protocol

Solution

I was able to solve the problem as following:

- changing the rpc_address property in cassandra.yaml to 0.0.0.0 instead of localhost.

- set the broadcast_rpc_address property in cassandra.yaml to a value other than 0.0.0.0

Then I can access.

Problem

I have a cassandra server running on a server(serv1). cassandra-cli can connect to it when run on serv1. However, when i try to connect to it through some other server(serv2), i get the following exception: ``` 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. ``` I looked in cassandra.yaml and found that the property "listen_address" is configured to "localhost" and using 0.0.0.0 is severely discouraged. I tried to change localhost to serv2, ip address of serv1 but nothing worked. Even commenting out didnt help. Is there a way i can make my cassandra server listen on all the ip's without using 0.0.0.0

Original source