我将 rpc_port 设置为公共 IP 地址,现在我可以从外部服务器很好地连接到 Cassandra。
但是,我无法使用 cqlsh 从 Cassandra 服务器本身进行连接
我收到一个错误。Thar 是:
Connection error: Could not connect to localhost:9160
是否有配置,我可以更改为能够从服务器本身连接?
cassandra.yaml
文件就行了rpc_port :
,默认情况下= 9160
cassandra
cqlsh 127.0.0.1 9160
:无论如何都应该没问题cqlsh [IP of host] 9160
:如果可以,则cassandra
可以从局域网访问,如果可以,则cassandra
无法从lan
但只能访问localhost 127.0.0.1
您需要rpc_address
通过cassandra.yaml
. 例如,我使用cqlsh 10.0.80.49 9160
.
考虑改变/etc/cassandra.yaml
:
# Whether to start the thrift rpc server.
start_rpc: false
至
start_rpc: true
如果您在 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 时得到这个
也许首先在您的本地机器上启动 cassandra bin/cassandra -f
?
它不听,127.0.0.1
因为你告诉它只听<public IP>
。使监听地址0.0.0.0
监听所有地址(或者如果可能的话省略它,因为这通常是默认值)。请参阅Listening Sockets .NET 教程或任何其他套接字教程,以基本了解套接字绑定。
更新(@ c45556037):
请注意,这listen_address
是其他节点用来连接到这个节点的节点(一个误导性的名称)。rpc_address
是本地绑定的实际地址。从2.0 文档中并不清楚,在1.0 文档中有更好的解释。
我在启动 cqlsh 时遇到了同样的情况。启动 cassandra 时出现以下错误
在终端中仅输入----cassandra-----。
它将显示所有 jars 和日志文件。如果终端挂起,只需退出它,然后输入 cqlsh。然后它将进入cassandra cli。
这对我有用
连接到 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
这对我有用,希望它也对你有用。
以下2.0.5
对我有用..
$CASSANDRA_HOME/bin/cqlsh xx.xx.xxx.xxx 9160
如何更改 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
请执行以下查询以解决问题
#!/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 和位置
考虑更改 /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 重启
使用此命令
sudo service cassandra start
启动 cassandra 然后使用
cqlsh command