Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在启动cqlsh shell时,它给了我连接到cassandra数据库的错误_Cassandra_Cqlsh - Fatal编程技术网

在启动cqlsh shell时,它给了我连接到cassandra数据库的错误

在启动cqlsh shell时,它给了我连接到cassandra数据库的错误,cassandra,cqlsh,Cassandra,Cqlsh,我正在尝试连接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 这是因为您没有为cqlsh提供要连接的IP地址。然后它假设“主”I

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

这是因为您没有为cqlsh提供要连接的IP地址。然后它假设“主”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
如果您的
广播
地址与定义的侦听/rpc地址不同,则应使用该地址(内部IP与外部IP…您需要外部IP)。在这种情况下,cqlsh命令将如下所示:

cqlsh 10.2.1.30 -u username -p password

这是因为您没有为cqlsh提供要连接的IP地址。然后它假设“主”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
如果您的
广播
地址与定义的侦听/rpc地址不同,则应使用该地址(内部IP与外部IP…您需要外部IP)。在这种情况下,cqlsh命令将如下所示:

cqlsh 10.2.1.30 -u username -p password

有几个场景可以回答您的问题: 1) 卡桑德拉没有跑 2) Cassandra没有使用该主机/IP(127.0.0.1)侦听/运行 3) 卡桑德拉没有监听9042端口 4) 防火墙正在阻止该主机/端口

1) 检查它是否正在运行

ps -ef | grep cassandra (or dse if using dse)
2) 检查cassandra.yaml中的本机_传输_地址以查看用于主机的IP。0.0.0.0非常好(如果您设置本机\u传输\u广播\u地址)

3) 检查cassandra.yaml中的本机_传输_端口以查看所使用的端口

4) Telnet连接到主机/端口,以确保没有任何阻碍

telnet 127.0.0.1 9042
您应该看到类似以下内容的输出:

Connected to XXXXXXXX.
Escape character is '^]'.
如果你不这样做,并且所有其他检查都通过了,那么就有东西挡住了去路(防火墙)

请注意,cassandra.yaml中使用的参数适用于cassandra 3.11(我相信dse 5.X+)。如果使用旧版本,则参数不同


-Jim

有几个场景可以回答您的问题: 1) 卡桑德拉没有跑 2) Cassandra没有使用该主机/IP(127.0.0.1)侦听/运行 3) 卡桑德拉没有监听9042端口 4) 防火墙正在阻止该主机/端口

1) 检查它是否正在运行

ps -ef | grep cassandra (or dse if using dse)
2) 检查cassandra.yaml中的本机_传输_地址以查看用于主机的IP。0.0.0.0非常好(如果您设置本机\u传输\u广播\u地址)

3) 检查cassandra.yaml中的本机_传输_端口以查看所使用的端口

4) Telnet连接到主机/端口,以确保没有任何阻碍

telnet 127.0.0.1 9042
您应该看到类似以下内容的输出:

Connected to XXXXXXXX.
Escape character is '^]'.
如果你不这样做,并且所有其他检查都通过了,那么就有东西挡住了去路(防火墙)

请注意,cassandra.yaml中使用的参数适用于cassandra 3.11(我相信dse 5.X+)。如果使用旧版本,则参数不同


-Jim

我得到了一个解决方案,两个查询必须在终端上逐个运行

  • 卡桑德拉
  • cqlsh 127.0.0.19042(端口)

  • 我得到了一个解决方案,两个查询必须在终端上逐个运行

  • 卡桑德拉
  • cqlsh 127.0.0.19042(端口)

  • 请添加更多信息-什么操作系统、什么Cassandra版本、什么Java版本等。请添加更多信息-什么操作系统、什么Cassandra版本、什么Java版本等。