Cassandra cqlsh-连接被拒绝
我刚刚开始使用Cassandra(datastax),版本2.1.3和cqlsh版本5.0.1 卡桑德拉启动良好,集群立即运行 Cqlsh不工作(在任何节点上),并发出以下错误: 连接错误:(‘无法连接到任何服务器’,{'127.0.0.1':错误(111, “已尝试连接到[('127.0.0.1',9042)]。上一个错误:连接被拒绝”)})Cassandra cqlsh-连接被拒绝,cassandra,cqlsh,Cassandra,Cqlsh,我刚刚开始使用Cassandra(datastax),版本2.1.3和cqlsh版本5.0.1 卡桑德拉启动良好,集群立即运行 Cqlsh不工作(在任何节点上),并发出以下错误: 连接错误:(‘无法连接到任何服务器’,{'127.0.0.1':错误(111, “已尝试连接到[('127.0.0.1',9042)]。上一个错误:连接被拒绝”)}) 我试着用主机自己的ip启动cqlsh,其他主机的ip,不同的端口,但结果仍然相同-始终拒绝连接。您需要在您尝试连接的节点上编辑cassandra.yam
我试着用主机自己的ip启动cqlsh,其他主机的ip,不同的端口,但结果仍然相同-始终拒绝连接。您需要在您尝试连接的节点上编辑
cassandra.yaml
,并为rpc\u address
和侦听\u address
设置节点ip地址,然后重新启动cassandra
rpc_address
是Cassandra侦听客户端调用的地址
listen_address
是Cassandra侦听其他Cassandra节点的地址。尝试将rpc_address
更改为指向节点的IP而不是0.0.0.0,并在连接到cqlsh时指定IP,如果IP为10.0.1.34,且rpc_端口
保留为默认值9160,则以下操作应有效:
cqlsh 10.0.1.34 9160
或:
还要确保在/etc/cassandra/cassandra.yaml配置文件中将start_rpc设置为true。尝试将
native_transport_协议更改为port9160
(如果设置为9160
,则可能指向9042
)。检查日志,查看cassandra正在哪个端口上侦听CQL客户端?如果服务器正在运行,最好检查cassandra日志。我收到了完全相同的消息,但无法对其执行任何操作,然后我发现日志中有错误,系统实际上无法工作
愚蠢,我知道,但可能发生…我试图在网络驱动器上运行它。因此,我在cqlsh中增加了客户机\u超时时间,它起了作用。在ArchLinux上从Cassandra 3.0降级到Cassandra 2.2后,最近出现了同样的问题
与上述解决方案不同,我的问题不在.cassandra中,但3.0版将其配置保留在/var/lib/cassandra目录中
以下命令解决了我的问题:
sudo rm -R /var/lib/cassandra
sudo rm -R /var/log/cassandra
sudo rm -R /usr/share/cassandra
然后我安装了cassandra,一切都恢复正常:)如果您在/var/log/cassandra
中检查cassandra的system.log
文件,请确保您也将“seeds”设置为“listen\u address”中提供的地址,您将看到出现此问题的原因是rpc服务器未启动
默认情况下,cassandra.yaml
文件中的start\u rpc
设置为false。将其设置为start\u rpc:true
,然后重试
从Cassandra 3.0开始,start\u rpc
默认设置为true 我在Cassandra 3.11.0中遇到了同样的问题,任何时候我更改rpc地址或侦听地址cqlsh都不起作用。我必须将相同的本地ip添加到seeds
因此,经过多次尝试和错误后,我的工作cassandra.yml结果如下:
class-name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
-seeds: "192.168.0.30"
listen_adress: 192.168.0.30
rpc_address: 192.168.0.30
尝试将telnet发送到给定的地址。就我而言,有一道防火墙挡住了我 对我来说,原来服务根本没有运行。
核对
service cassandra status
如果您遇到了与我相同的错误,或者其他类型的错误,那么混淆IP地址根本解决不了您的问题
我得到的错误是:
cassandra dead but pid file exists
编辑:这是我问题的解决方案:在/etc/cassandra/cassandra.yaml中查找本机传输端口
默认值为9842
native_transport_port: 9842
为了使用cqlsh连接到localhost,这个端口对我有用
cqlsh 127.0.0.1 9842
这是因为cassandra中有一些预配置。为了解决这个问题,在cassandra env.sh
文件中有以下注释行:
#如果连接有问题,请添加以下内容:
#JVM_OPTS=“$JVM_OPTS-Djava.rmi.server.hostname=
在这里,您必须开始修复错误
打开端子并使用以下简单步骤开始固定:
步骤1
使用
sudo nano/etc/cassandra/cassandra env.sh
使用此命令并搜索JVM\u OPTS=“$JVM\u OPTS-Djava.rmi.server.hostname=
只需删除行开头附加的
即可取消对行的注释
注意:如果您从未打开此文件来修复此错误,则会发现JVM\u OPTS=“$JVM\u OPTS-Djava.rmi.server.hostname=
步骤2
现在将
替换为127.0.0.1
步骤3保存文件并使用systemctl restart cassandra.service
重新启动cassandra.service(如果您尚未启动,则服务器已重新运行)。或者使用systemctl start cassandra.service
启动cassandra.service(如果服务器未运行)
步骤4使用sudo service cassandra status
或systemctl status cassandra.service
检查状态
注意:检查系统监视器是否正在运行cassandra
现在试试cqlsh
,它会起作用的
注意:nano
是您可以使用其他编辑器的编辑器。当我安装Cassandra 3.11.1时,我遇到了这个问题。我检查了/var/log/Cassandra/Cassandra.log,发现了这个错误
启动过程中遇到异常…这是一个错误,已报告。原始的post链接
解决方案是将卡桑德拉降级至3.0
下载卡桑德拉rpm
旋度-O
或
wget
rpm-ivh cassandra-3.0.15-1.noarch.rpm
服务卡桑德拉启动
服务卡桑德拉状态#检查卡桑德拉街
native_transport_port: 9842
#add this if you’re having trouble connecting:
#JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<public name>
INFO [main] 2019-03-15 19:53:06,156 Server.java:156 - Starting listening for CQL clients on /10.139.45.34:9042 (unencrypted)...
cqlsh 10.0.2.64 9160
cqlsh 10.0.2.64