当启动cqlshshell时,它给了我连接cassandra数据库的错误

7vhp5slm  于 2021-06-14  发布在  Cassandra
关注(0)|答案(3)|浏览(371)

我正在尝试连接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
vlurs2pr

vlurs2pr1#

我得到了一个解决方案,两个查询必须一个接一个地在终端上运行。
Cassandra
cqlsh 127.0.0.1 9042(端口)

mrzz3bfm

mrzz3bfm2#

这是因为您没有为cqlsh提供要连接的ip地址。然后它假设“home”ip(127.0.0.1),我猜您没有一个正在运行的cassandra节点绑定到该地址。
第一, 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命令将如下所示:

cqlsh 10.2.1.30 -u username -p password
wwtsj6pe

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+)。如果使用旧版本,则参数不同。
-吉姆

相关问题