我刚开始使用Cassandra(datastax),版本2.1.3和cqlsh版本5.0.1。
Cassandra可以正常启动,并且集群可以立即运行。
但是cqlsh无法工作(在任何节点上),并且会产生以下错误:
连接错误:(“无法连接到任何服务器”,{'127.0.0.1':error(111, “尝试连接[('127.0.0.1',9042)]。上一个错误:拒绝连接”)})
我已经尝试使用主机自己的IP、其他主机的IP、不同端口启动cqlsh,但结果始终相同-始终是连接被拒绝。
对我来说,事实证明这项服务根本没有运行。请检查:
service cassandra status
cassandra dead but pid file exists
编辑:这是我的问题的解决方案:https://dev59.com/K4jca4cB1Zd3GeqPwWk2#46743119
我遇到了这个问题,使用文件中设置。
为了验证,
日志文件中显示。
INFO [main] 2019-03-15 19:53:06,156 Server.java:156 - Starting listening for CQL clients on /10.139.45.34:9042 (unencrypted)...
native_transport_protocol
更改为端口9160
(如果它设置为除9160
之外的任何内容;它可能指向9042
)。检查日志并查看Cassandra正在哪个端口侦听CQL客户端?native_transport_port
而不是native_transport_protocol
。 - Kuldeep Dangi在 cassandra.yaml 文件中检查正确的 IP 地址。大部分情况下,错误是由于系统 IP 地址不正确,还有用户名和密码也可能有误。
完成后,通过以下命令启动 cqlsh:
cqlsh 10.31.79.1 -u cassandra -p cassandra
我试图在网络驱动器上运行它。因此,我增加了cqlsh中的client_timeout
,然后它就可以工作了。
cqlsh --cqlversion="3.4.0" 已连接到位于 127.0.0.1:9042 的测试集群。 [cqlsh 5.0.1 | Cassandra 3.0.9 | CQL spec 3.4.0 | Native protocol v4]
尝试以上命令。它对我有效。
请确保您还将“seeds”设置为您在“listen_address”处提供的地址
当客户端无法连接到任何服务器时,还有一种情况未被提及,即在cassandra.yaml
文件的client_encryption_options
块中启用了客户端到节点加密。
在这种情况下,您需要添加--ssl
标志以进行连接:
cqlsh --ssl
。
检查CASSANDRA_HOME环境变量指向哪里。我之前设置了一个旧版本的Cassandra。我已经将其重置为我升级的3.11.6安装版本,然后它开始工作了。
cqlsh 1.1.2.2 9160
可以正常工作。 - Chroslisten_address
、rpc_address
和broadcast_rpc_address
之间设置了某种不正确的选项...后者是2.1.x中的新设置。 我想知道listen_address
和rpc_address
设置是什么(不一定要知道值,但要知道它们与使用cqlsh的1.1.2.2 IP的关系)。 如果您再次尝试2.1.x,请将listen_address
设置为本地IP,将rpc_address
设置为0.0.0.0,并将broadcast_rpc_address
设置为外部IP。 - Aaron1.1.2.2
是主机 IP(主机只有内部 IP),其值为:listen_address: 1.1.2.2
rpc_address: 0.0.0.0
broadcast_rpc_address: 1.1.2.2
。广播地址是必需的(Cassandra 日志)。尝试了大多数组合,但都没有成功。最终不得不在 2.0.13 中删除/注释掉它,因此很可能是broadcast_rpc_address
导致了问题。不确定我还能给它哪些其他值。难道它不会在其他地方抛出错误吗? - Chros