我在机器上有一个 cassandra 节点。当我从同一台机器访问 cqlsh 时,它可以正常工作。
但是当我尝试使用另一台机器上的“192.xxx”连接到它的 cqlsh 时,我收到一条错误消息
连接错误:('无法连接到任何服务器',{'192.xxx':错误(111,“尝试连接到[('192.xxx',9042)]。最后一个错误:连接被拒绝”)})
这是什么原因?我该如何解决?
我在机器上有一个 cassandra 节点。当我从同一台机器访问 cqlsh 时,它可以正常工作。
但是当我尝试使用另一台机器上的“192.xxx”连接到它的 cqlsh 时,我收到一条错误消息
连接错误:('无法连接到任何服务器',{'192.xxx':错误(111,“尝试连接到[('192.xxx',9042)]。最后一个错误:连接被拒绝”)})
这是什么原因?我该如何解决?
可能远程 Cassandra 节点未绑定到外部网络接口,而是绑定到环回接口(这是默认配置)。您可以通过在远程机器上使用“telnet thecassandrahost 9042”来确保这一点,它不应该工作。
为了将 Cassandra 绑定到外部网络接口,您需要编辑 cassandra.yaml 配置文件并将属性“ listen_address
”和“ rpc_address
”设置为您的远程 IP 或“0.0.0.0”(并非所有版本的 Cassandra 都支持通配符地址)。
还要检查防火墙是否正确配置或禁用(sudo service iptables stop)。
设置此文件所在的配置参数。可能/etc/cassandra/cassandra.yaml
。
listen_address: 192.x.x.x
rpc_address: 192.x.x.x
然后,重新启动服务。
我遇到了同样的问题。我正在关注这篇文章中的答案。不幸的是,我没有运气让它工作。我做了一些研究。它现在有效。这是我的零钱。
环境 Ubuntu Server 16.04.3 LTS on VirtualBox,DSE 版本 5.1
安装 DSE
我正在按照此页面安装 DSE https://docs.datastax.com/en/dse/5.1/dse-dev/datastax_enterprise/install/installGUIdse.html
这是我在 15 秒后的日志。`ubuntu08@ubuntu08:~$ nodetool status nodetool: 无法连接到 '127.0.0.1:7199' - ConnectException: '连接被拒绝(连接被拒绝)'。ubuntu08@ubuntu08:~$ nodetool 状态
错误:节点还没有 system_traces,可能还在引导 ubuntu08@ubuntu08:~$ nodetool status
Status=Up/Down |/State=Normal/Leaving/Joining/Moving - 地址加载令牌拥有主机 ID 机架 UN 10.0.0.44 278.51 KiB 32?19db0016-df63-4470-9921-f3b5fe4e9341 机架1`
这是 Cassandra 的另一个文档https://docs.datastax.com/en/developer/java-driver/3.3/manual/address_resolution/
我遇到了同样的问题,我不被允许收听 0.0.0.0 并且 Cassandra 正在使用桥接网络的 VM 上运行。我找到的解决方案是让 VM SSH 到自己,端口将桥接网络接口上的端口转发到 localhost:
ssh -L 192.168.x.x:9042:127.0.0.1:9042 myvmuser@localhost
由于桥接网卡的 IP 会改变(取决于运行它的开发人员机器),ssh-command 必须首先获取 IP,这个片段为此工作:
ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1'
此外,由于这应该在启动时发生,您必须为 vm-user 创建一个 SSH 密钥并通过 .ssh/authorized_keys 信任它。
即使我设置了RPC_ADDRESS
,它对我也不起作用,直到我设置了-e CASSANDRA_START_RPC=true
选项。
false
在我的情况下,它总是设置为。我已经在 Ubuntu、Docker 和 Cassandra 上尝试过。
我编辑 cassandra.yaml 设置 listen_address 和 roc_address 作为 ip 地址解决问题。