我正在尝试连接cqlsh,但它给了我以下错误:
Connection error: ('Unable to connect to any servers', {'127.0.0.1': error(111, "Tried connecting to [('127.0.0.1', 9042)]. Last error: Connection refused")})
我在终端上尝试了cqlsh命令:
cqlsh
vlurs2pr1#
我得到了一个解决方案,两个查询必须一个接一个地在终端上运行。Cassandracqlsh 127.0.0.1 9042(端口)
mrzz3bfm2#
这是因为您没有为cqlsh提供要连接的ip地址。然后它假设“home”ip(127.0.0.1),我猜您没有一个正在运行的cassandra节点绑定到该地址。第一, grep 对于节点绑定到的地址:
grep
$ grep "_address:" cassandra.yaml listen_address: 192.168.1.3 broadcast_address: 10.2.1.30 rpc_address: 192.168.1.3 broadcast_rpc_address: 10.2.1.30
如果你的 broadcast_ 地址与定义的listen/rpc地址不同,您应该使用该地址(内部IP与外部IP…您需要外部IP)。在本例中,cqlsh命令将如下所示:
broadcast_
cqlsh 10.2.1.30 -u username -p password
wwtsj6pe3#
有几个场景可以回答您的问题:1)cassandra没有运行2)cassandra没有侦听/运行该主机/ip(127.0.0.1)3)cassandra没有侦听端口9042 4)防火墙正在阻止该主机/端口1) 检查它是否正在运行
ps -ef | grep cassandra (or dse if using dse)
2) 检查cassandra.yaml中的本机\u传输\u地址以查看用于主机的ip。0.0.0.0是非常好的(如果您设置本机传输广播地址)3) 检查cassandra.yaml中的本机\u传输\u端口以查看所使用的端口4) telnet到主机/端口,以确保没有任何阻碍
telnet 127.0.0.1 9042
您应该看到类似于以下内容的输出:
Connected to XXXXXXXX. Escape character is '^]'.
如果你不这样做,并且所有其他检查都通过了,那么就有东西挡道了(防火墙)。注意,cassandra.yaml中使用的参数是针对cassandra3.11的(我相信是dse5.x+)。如果使用旧版本,则参数不同。-吉姆
3条答案
按热度按时间vlurs2pr1#
我得到了一个解决方案,两个查询必须一个接一个地在终端上运行。
Cassandra
cqlsh 127.0.0.1 9042(端口)
mrzz3bfm2#
这是因为您没有为cqlsh提供要连接的ip地址。然后它假设“home”ip(127.0.0.1),我猜您没有一个正在运行的cassandra节点绑定到该地址。
第一,
grep
对于节点绑定到的地址:如果你的
broadcast_
地址与定义的listen/rpc地址不同,您应该使用该地址(内部IP与外部IP…您需要外部IP)。在本例中,cqlsh命令将如下所示:wwtsj6pe3#
有几个场景可以回答您的问题:1)cassandra没有运行2)cassandra没有侦听/运行该主机/ip(127.0.0.1)3)cassandra没有侦听端口9042 4)防火墙正在阻止该主机/端口
1) 检查它是否正在运行
2) 检查cassandra.yaml中的本机\u传输\u地址以查看用于主机的ip。0.0.0.0是非常好的(如果您设置本机传输广播地址)
3) 检查cassandra.yaml中的本机\u传输\u端口以查看所使用的端口
4) telnet到主机/端口,以确保没有任何阻碍
您应该看到类似于以下内容的输出:
如果你不这样做,并且所有其他检查都通过了,那么就有东西挡道了(防火墙)。
注意,cassandra.yaml中使用的参数是针对cassandra3.11的(我相信是dse5.x+)。如果使用旧版本,则参数不同。
-吉姆