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

Cassandra cqlsh无法连接到任何服务器-127.0.0.1:9160(关闭)>;已经关门了,cassandra,cqlsh,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',)}) >连

我在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',)})
>连接错误:(“无法连接到任何服务器,{'127.0.0.1':
>ConnectionShutdown('连接127.0.0.1:9160(已关闭)>已关闭',)})

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

我认为问题是由于以前的安装未正确卸载。我的用户
.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> 

Cassandra-2.1使用9042作为cqlsh端口。在这个端口上连接是默认端口。如果你想在9160端口上连接,那么通过设置环境变量cqlsh_port和cqlsh_HOST来更改它。但是要设置它,你必须将rpc_端口从默认的9160更改为任何其他端口。

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

这只是错误“连接错误:(‘无法连接到任何服务器’,”的原因之一

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


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

我把自己弄得一团糟,所以如果有人碰到我的情况,我会这样做:

  • 我遵循了这个教程 (这有点过时)
  • 我把所有的东西都安装好了,一切正常。然后我决定下载Datastax企业工具来试用
  • 在安装过程中遇到错误,但安装成功。按照上面的教程,再次尝试运行./datasax代理程序,但失败。决定将其打包,以便在安装文件夹中运行卸载程序
  • 尝试返回到原始的cassandra文件夹(我在步骤2中的工作)并运行“sudo./cassandra”,然后我开始收到JMX错误消息(消息“无法绑定JMX,cassandra是否已在运行?”),这使我找到了关于更改端口的链接,我没有这样做(没有真正解决问题,但正在解决问题)
  • 已在新端口下运行服务器服务,但尝试与客户端“sudo./cqlsh”连接时无法工作(将获得“Error=none”或找不到目标)
  • 执行了上面提到的移除步骤@Peter,并再次尝试,但仍然不起作用
  • 决定回去看看卡桑德拉使用的原始端口是什么,我在第4步中更改了它
  • 确定JAVA.app挂在它上面,因此在活动监视器中杀死了它
  • 再次运行上面提到的remove命令@Peter,并决定下载稳定版本(v2.0.13),而不是dev版本,然后从第1步开始再次浏览教程
  • 退出并重新打开终端。运行“sudo./cassandra”-在标准端口下运行正常。打开另一个终端窗口并运行“sudo./cqlsh”,这也正常工作

  • 我相信,挂在默认端口9042上的Java(可能是由于DataStax安装错误)、在~/.cassandra/cqlshrc中的版本/主机/端口设置以及使用cassandra的开发版本,这些都会引起我的不适。

    我在从终端连接cassandra时遇到问题

    [

    然后我尝试使用/usr/local/cillar进行连接/

    [

    然后调用cassandra,打开一个新的终端,输入cqlsh,cassandra启动了


    希望这也适用于解决卡桑德拉问题。

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

    vi ~/.cassandra/cqlshrc 
    
    下面的编辑配置为我正在运行的机器的当前IP地址(192.168.1.6)

    [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只需在cassandra.yaml中添加/修改以下内容:

     rpc_address: 127.0.0.1
     seeds: "127.0.0.1"
     listen_address: 127.0.0.1
    
    请注意,所有这些字段中的值必须相同。
    这意味着,如果您指向的是静态IP,则应使用相同的IP。如果您只是指向本地主机,则必须在所有字段中使用本地主机。

    运行
    cassandra
    帮助我解决了此问题:

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


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

    我对配置了SSL的Cassandra也有同样的问题。
    
    cqlsh——ssl
    

    正确解决连接问题。

    安装java jdk并在环境变量中设置java\u HOME或在命令提示符中设置java\u HOME=java路径

    之后

    跑吧,卡桑德拉


    如果您遇到任何错误,它将显示日志。好吧,我也遇到了同样的问题,这就是我在Mac上所做的

    $cd /usr/local/Cellar/cassandra/3.10_1/bin/     
    
    或者安装cassandra的任何地方

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

    $./cqlsh 
    

    这允许您进入cql查询模式。

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

    $ ./cassandra -f
    
    然后打开另一个终端选项卡(command+t)并运行cqlsh

    $ ./cqlsh
    

    确保脚本cqlsh.py中的DEFAULT_HOST='127.0.0.1'指向已完成cassandra安装的节点IP。
    在我的例子中,我已经在10.160.1.5上安装了cassandra,编辑了上面的文件,它开始工作。

    运行
    cqlsh
    为我获取了这个错误,但是从cassandra目录运行
    bin/cqlsh

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

    java8
    移动到
    java11
    后,我收到了相同的错误
    $ ./cqlsh