Cassandra cqlsh无法连接到任何服务器 - 127.0.0.1:9160(已关闭)>已经关闭

时间:2014-11-18 21:51:19

标签: cassandra cqlsh

我在OSX上安装了Cassandra。 当尝试从/ bin /运行cqlsh时,我收到以下错误:

> Connection error: ('Unable to connect to any servers', {'127.0.0.1':
> ConnectionShutdown('Connection <AsyncoreConnection(4522252560)
> 127.0.0.1:9160 (closed)> is already closed',)})

我在安装Cassandra时遇到了困难,并且使用了brew install cassandra,从datastax安装了DSE,并从Apache下载了二进制文件。

16 个答案:

答案 0 :(得分:28)

我认为问题是先前安装没有正确卸载的结果。我的用户.cassandra目录有一些默认配置,必须是针对不同的版本,并阻止cqlsh启动。

rm -Rf ~/.cassandra

之后,我可以正确运行cqlsh。

$ bin/cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 2.1.2 | CQL spec 3.2.0 | Native protocol v3]
Use HELP for help.
cqlsh> 

答案 1 :(得分:9)

正在运行cassandra帮助我解决问题:

> cassandra
Cassandra 3.0 and later require Java 8u40 or later.

和:

> java -version
java version "1.7.0_95"
OpenJDK Runtime Environment (IcedTea 2.6.4) (7u95-2.6.4-3)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)

安装Java 8后,它工作正常。

答案 2 :(得分:6)

Cassandra-2.1使用9042作为cqlsh port.Connect就是这个默认端口。如果你想连接9160端口然后通过设置环境变量CQLSH_PORT和CQLSH_HOST来改变它,但是为了设置它你必须从默认值9160更改rpc_port到任何其他港口。

答案 3 :(得分:4)

好吧,我遇到了同样的问题,这就是我在Mac上所做的。

$cd /usr/local/Cellar/cassandra/3.10_1/bin/     

或者安装cassandra的地方。

$cassandra 

这会初始化本地系统中的所有配置以启动cassandra。

$./cqlsh 

这使您可以进入cql查询模式。

答案 4 :(得分:3)

当我尝试使用cqlsh 5.0.1连接到Cassandra 2.0.1版本时,我遇到了这个问题 [cqlsh 4.1.1 |卡桑德拉2.0.11.83 | CQL规范3.1.1 | ] [cqlsh 5.0.1 | Cassandra 2.1.2 | CQL规范3.2.0]

这只是导致错误的原因之一&#34;连接错误:(&#39;无法连接到任何服务器&#39;,&#34;。

当我使用与Cassandra 2.0.1兼容的cqlsh客户端时,我能够连接到群集。

希望这有助于找到根本原因。

答案 5 :(得分:2)

Java 8移到Java 11后,我遇到了同样的错误。从https://github.com/nosan/embedded-cassandra/issues/21起,Apache Cassandra尚不支持Java 11。

将系统的当前Java版本恢复为Java 8解决了该问题。

答案 6 :(得分:1)

只需在cassandra.yaml中添加/修改以下内容:

 rpc_address: 127.0.0.1
 seeds: "127.0.0.1"
 listen_address: 127.0.0.1

请注意,所有这些字段中的值必须相同。 这意味着,如果您指向静态IP,则应使用相同的IP。如果您只是指向localhost,则必须在所有字段中使用localhost。

答案 7 :(得分:0)

我陷入了混乱,所以如果有其他人遇到它,这就是我的情景:

  1. 我遵循了本教程 http://www.datastax.com/2012/01/working-with-apache-cassandra-on-mac-os-x (这有点过时了)。
  2. 我安装好了所有工作 - 一切都很好。然后我决定下载Datastax Enterprise工具来试用它们
  3. 在安装过程中遇到错误,但安装完成了。再次按照上面的教程,尝试运行./datastax-agent程序,但它失败了。决定将它包装好,然后在他们的安装文件夹中运行他们的卸载程序。
  4. 试图回到原来的cassandra文件夹(我在第2步中工作过)并运行&#34; sudo ./cassandra"然后我开始得到JMX错误(消息&#34;无法绑定JMX,Cassandra已经在运行?&#34;)这导致我关于更改我所做的端口的链接(不是真正解决问题但是解决它)run two cassandra versions in the same machine
  5. 让服务器服务在新端口下运行,但在尝试与客户端连接时,&#34; sudo ./cqlsh"不会工作(会得到&#34;错误=无&#34;或找不到目的地)。
  6. 上面提到的删除步骤@Peter是否再次尝试但仍无效。
  7. 决定回去看看持有原始端口cassandra使用的是什么,我在步骤4中更改了Who is listening on a given TCP port on Mac OS X?
  8. 确定JAVA.app挂在它上面,因此在Activity Monitor中将其杀死。
  9. 再次重新启动上面提到的删除命令@Peter并决定下载稳定版本(v2.0.13)而不是开发版本,并再次从步骤1开始学习本教程。
  10. 退出并重新打开终端。 Ran&#34; sudo ./cassandra" - 在标准端口下完美运行。打开另一个终端窗口并运行&#34; sudo ./cqlsh"这也正常。
  11. 我相信Java挂在默认端口9042(可能来自DataStax安装错误),〜/ .cassandra / cqlshrc中的版本/主机/端口设置和使用cassandra的开发版本这些都导致我适合。< / p>

答案 8 :(得分:0)

我无法从终端

连接Cassandra

[Cassandra image]

然后我尝试使用/ usr / local / Cellar /

进行连接

[Cassandra image]

然后调用cassandra。然后打开一个新的终端并输入Cassandra开始的cqlsh。

希望这也适用于解决Cassandra问题。

答案 9 :(得分:0)

我通过编辑以下文件在DSE-5.0中解决了这个问题:

vi ~/.cassandra/cqlshrc 

下面的编辑配置我正在运行的机器的当前IP地址(192.168.1.6)。就我而言,这是我的MacBook。

[connection]
hostname = 192.168.1.6
port = 9042
; factory = cqlshlib.kerberos_ssl.kerberos_ssl_transport_factory

; [kerberos]
; hostname = 192.168.1.6
; service = cassandra
; optional
; principal = bill/cassandra-admin@foo.example.com

我希望它会帮助别人。

谢谢,

CHANDAN

答案 10 :(得分:0)

在环境变量中安装java jdk和Set JAVA_HOME,或在命令提示符下设置JAVA_HOME = java path。

之后

运行cassandra.bat

如果您收到任何错误,它会显示日志

答案 11 :(得分:0)

您需要从install_location的bin目录启动Cassandra。 例如,此命令将在前台启动Cassandra:

$ ./cassandra -f

然后打开另一个终端选项卡(命令+ t)并运行cqlsh

$ ./cqlsh

答案 12 :(得分:0)

确保脚本cqlsh.py中的DEFAULT_HOST ='127.0.0.1'指向完成cassandra安装的节点IP。 就我而言,我在10.160.1.5上安装了cassandra,并在上面的文件中进行了编辑,然后它开始工作。

答案 13 :(得分:0)

运行cqlsh会为我带来此错误,但可以从cassandra目录运行bin/cqlsh

答案 14 :(得分:0)

我遇到了同样的问题。我运行了cassandra.bat->这似乎已经启动了服务器。然后,我打开一个新的命令提示符(以管理员身份运行),将目录更改为cassandra / bin位置。当我运行命令cqlsh时,瞧,它起作用了!

答案 15 :(得分:-2)

我遇到了与Cassandra配置SSL相同的问题。 CREATE TABLE student ( S_id INT NOT NULL AUTO_INCREMENT ,S_name VARCHAR(45) NOT NULL ,PRIMARY KEY (S_id) ,UNIQUE INDEX S_name_UNIQUE(S_name ASC) ) AUTO_INCREMENT=14012040; 求解连接正确。