25

我将 rpc_port 设置为公共 IP 地址,现在我可以从外部服务器很好地连接到 Cassandra。

但是,我无法使用 cqlsh 从 Cassandra 服务器本身进行连接

我收到一个错误。Thar 是:

 Connection error: Could not connect to localhost:9160

是否有配置,我可以更改为能够从服务器本身连接?

4

14 回答 14

21
  1. 用normal检查cassandra.yaml文件就行了rpc_port :,默认情况下= 9160
  2. 登录机器托管cassandra
  3. 尝试cqlsh 127.0.0.1 9160:无论如何都应该没问题
  4. 尝试cqlsh [IP of host] 9160:如果可以,则cassandra可以从局域网访问,如果可以,则cassandra无法从lan但只能访问localhost 127.0.0.1
于 2014-09-09T14:21:23.947 回答
9

您需要rpc_address通过cassandra.yaml. 例如,我使用cqlsh 10.0.80.49 9160.

于 2014-09-08T05:08:45.487 回答
9

考虑改变/etc/cassandra.yaml

# Whether to start the thrift rpc server.
start_rpc: false

start_rpc: true
于 2015-12-11T02:04:52.277 回答
8

如果您在 cassandra 日志中看到这一点:

INFO  [main] 2015-07-21 12:06:27,426 CassandraDaemon.java:406 - Not starting RPC server as requested. Use JMX (StorageService->startRPCServer()) or nodetool (enablethrift) to start it

然后只需打开一个终端并

$ nodetool enablethrift

如 INFO 消息中所写。现在应该可以工作了。当我的系统升级到 cassandra 2.2.0 时得到这个

于 2015-07-21T11:14:59.073 回答
5

如果你在 OSX

brew install cassandra

首先启动 Cassandra

cassandra

启动 Cassandra 通过 CQL 外壳连接

cqlsh 127.0.0.1

在此处输入图像描述

于 2015-11-24T21:43:52.453 回答
4

也许首先在您的本地机器上启动 cassandra bin/cassandra -f

于 2015-07-27T18:01:38.153 回答
3

它不听,127.0.0.1因为你告诉它只听<public IP>。使监听地址0.0.0.0监听所有地址(或者如果可能的话省略它,因为这通常是默认值)。请参阅Listening Sockets .NET 教程或任何其他套接字教程,以基本了解套接字绑定。

更新(@ c45556037):

请注意,这listen_address其他节点用来连接到这个节点的节点(一个误导性的名称)。rpc_address是本地绑定的实际地址。从2.0 文档中并不清楚,在1.0 文档中有更好的解释。

于 2014-07-25T16:10:05.063 回答
1

我在启动 cqlsh 时遇到了同样的情况。启动 cassandra 时出现以下错误

在终端中仅输入----cassandra-----。

它将显示所有 jars 和日志文件。如果终端挂起,只需退出它,然后输入 cqlsh。然后它将进入cassandra cli。

这对我有用

于 2016-04-16T18:29:20.607 回答
0

连接到 localhost/9160 的异常。原因:连接被拒绝

连接拒绝 cassandra cli 模式。

转到 cassandra 的根目录:

bin/cassandra -- host {host-ip} --port {9160}

如果您遇到问题,请检查您的 {cassandra-root-directory}/conf/cassandra.yaml

thrift ip 或 rpc_address 是用作连接到 cli 的 host-ip 的地址。将其设为您的本地 IP,如果您在使用端口 9160 连接时遇到问题,请尝试将 rpc_port 更改为 8070,然后尝试使用以下命令连接到 cassandra-cli 模式

bin/cassandra --host {local-IP} --port 8070

这对我有用,希望它也对你有用。

于 2014-06-01T03:32:04.717 回答
0

以下2.0.5对我有用..

   $CASSANDRA_HOME/bin/cqlsh xx.xx.xxx.xxx 9160
于 2014-07-25T15:21:24.693 回答
0

如何更改 Cassandra 中的默认端口 9042?

我使用以下步骤解决了问题:

1) 停止 cassandara 服务

sudo su -
systemctl stop datastax-agent
systemctl stop opscenterd
systemctl stop app-dse

2)备份并将端口从9042更改为9035

cp /opt/dse/resources/cassandra/conf/cassandra.yaml /opt/dse/resources/cassandra/conf/bkp_cassandra.yaml
vi /opt/dse/resources/cassandra/conf/cassandra.yaml

native_transport_port: 9035

3)启动Cassandra服务

systemctl start datastax-agent
systemctl start opscenterd
systemctl start app-dse

4) 创建 cqlshrc 文件。

vi  /root/.cassandra/cqlshrc

[connection]
hostname = 198.168.1.100
port = 9035
于 2018-05-22T05:31:26.443 回答
0

请执行以下查询以解决问题

#!/bin/bash
export CASSANDRA_HOME=/opt/apache-cassandra-2.1.8
export CQLSH_HOST=192.168.1.200
export CQLSH_PORT=9042
echo $@
$CASSANDRA_HOME/bin/cqlsh $@'    

确保更改 cassandra 主目录的 IP 和位置

于 2015-07-30T12:07:10.307 回答
0

考虑更改 /etc/cassandra-env.sh:

JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl=true"
not "true" but "false"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl=false"

sudo 服务 cassandra 重启

于 2017-07-28T19:06:48.940 回答
0

使用此命令

sudo service cassandra start

启动 cassandra 然后使用

cqlsh command
于 2015-11-24T07:36:03.327 回答