Cassandra cqlsh - 连接被拒绝

Chr*_*ros 51 cassandra cqlsh

我刚刚开始使用Cassandra(datastax),版本2.1.3和cqlsh版本5.0.1.

Cassandra启动良好,集群即时运行.

Cqlsh无法正常工作(在任何节点上)并发出以下错误:

连接错误:('无法连接到任何服务器',{'127.0.0.1':错误(111,"尝试连接到[('127.0.0.1',9042)].上次错误:连接被拒绝")})

我尝试用主机自己的ip,其他主机ip,不同的端口启动cqlsh但结果仍然相同 - 始终连接被拒绝.

Rub*_*uba 17

尝试将rpc_address指向更改为指向节点的IP而不是0.0.0.0并在连接到cqlsh时指定IP,就好像IP是10.0.1.34并且rpc_port左边是默认值9160那样以下应该可以工作:

cqlsh 10.0.1.34 9160 
Run Code Online (Sandbox Code Playgroud)

要么:

cqlsh 10.0.1.34 
Run Code Online (Sandbox Code Playgroud)

另外,还要确保start_rpc设置为true在/etc/cassandra/cassandra.yaml配置文件.

  • 根据文档,rpc_port的默认值是9160,但是听起来像最新的Cassandra版本中的cqlsh使用cassandra.yaml中具有9042默认值的native_transport_port属性的值.你能为native_transport_port指定任何空闲端口并检查错误是否发生变化? (2认同)

jny*_*jny 15

您需要cassandra.yaml在尝试连接的节点上进行编辑,并为其设置节点IP地址rpc_address,listen_address然后重新启动Cassandra.

rpc_address 是Cassandra监听客户端调用的地址.

listen_address 是Cassandra侦听其他Cassandra节点的地址.

  • 假设 Cassandra 所在的服务器的 IP 是“1.2.3.4”。将 rpc_address 设置为 `1.2.3.4`。重新启动卡桑德拉。然后尝试`cqlsh 1.2.3.4` (2认同)

Rok*_*jan 7

如果在中检查system.logcassandra 的文件/var/log/cassandra,则会看到此问题发生,因为rpc服务器尚未启动。

默认情况下,文件start_rpc中的设置为false cassandra.yaml。将其设置为start_rpc: true,然后重试。

从Cassandra 3.0开始,start_rpc默认情况下设置为true。https://docs.datastax.com/zh-CN/cassandra/3.0/cassandra/configuration/configCassandra_yaml.html


Gau*_*wal 6

这是因为 cassandra 中的一些预配置。为了解决这个问题,文件中有以下注释行cassandra-env.sh

#add this if you’re having trouble connecting:
#JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<public name>
Run Code Online (Sandbox Code Playgroud)

您必须从哪里开始修复错误。

打开终端并使用以下简单步骤开始修复:

第1步

sudo nano /etc/cassandra/cassandra-env.sh

此命令并JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=通过简单地删除#行开头的附加来搜索取消注释该行。

注意:如果您从未打开此文件来修复此错误,那么您会发现JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<public name>

步骤 2 现在替换<public name>127.0.0.1

步骤 3保存文件并使用重新启动 cassandra systemctl restart cassandra.service(如果您还没有服务器已经运行)。或者使用systemctl start cassandra.service(如果服务器未运行)启动 cassandra 。

步骤 4使用sudo service cassandra status或检查状态systemctl status cassandra.service

注意:一旦检查系统监视器 cassandra 是否在那里运行。

cqlsh现在试试。它会工作。

注意: nano是编辑器,您可以使用您熟悉的其他编辑器。


Ami*_*eli 5

在 /etc/cassandra/cassandra.yaml 中查找 native_transport_port 默认值为 9842。

native_transport_port: 9842
Run Code Online (Sandbox Code Playgroud)

对于使用 cqlsh 连接到本地主机,这个端口对我有用。

cqlsh 127.0.0.1 9842