Cassandra cqlsh无法连接到任何服务器-127.0.0.1:9160(关闭)>;已经关门了
我在OSX上安装了Cassandra。 在尝试从/bin/运行cqlsh时,出现以下错误: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',)}) >连
> 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客户端时,我能够连接到集群
希望这有助于找到根本原因。我把自己弄得一团糟,所以如果有人碰到我的情况,我会这样做:
我相信,挂在默认端口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