我刚刚开始使用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配置文件.
jny*_*jny 15
您需要cassandra.yaml在尝试连接的节点上进行编辑,并为其设置节点IP地址rpc_address,listen_address然后重新启动Cassandra.
rpc_address 是Cassandra监听客户端调用的地址.
listen_address 是Cassandra侦听其他Cassandra节点的地址.
如果在中检查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
这是因为 cassandra 中的一些预配置。为了解决这个问题,文件中有以下注释行cassandra-env.sh:
Run Code Online (Sandbox Code Playgroud)#add this if you’re having trouble connecting: #JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<public name>
您必须从哪里开始修复错误。
打开终端并使用以下简单步骤开始修复:
第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是编辑器,您可以使用您熟悉的其他编辑器。
在 /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
| 归档时间: |
|
| 查看次数: |
85921 次 |
| 最近记录: |