Cassandra-cli cant connect to remote cassandra server
Solution 1
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.
Solution 2
Cassandra cli uses thrift to connect to Cassandra. The rpc_address decides how the thrift clients can connect to Cassandra. Setting it to 0.0.0.0 will work, but setting it to the hostname of the server and then using the same hostname to connect will also work.
Related videos on Youtube
Chander Shivdasani
A Programmer in race with the universe. While the universe is busy creating fools, im busy writing complex programs.
Updated on September 15, 2022Comments
-
Chander Shivdasani over 1 year
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
-
KingOfHypocrites about 9 yearsWhat do you mean other than 0.0.0.0.. what did you set it to?
-
Lewen over 8 yearsIn the yaml file, the address is 1.2.3.4 in the comment. I set it to 255.255.255.255, and it works , well... at least for the moment