2016-07-24 102 views
1

我的主题行可能会说这是一个重复的问题,但它不是。我尝试了所有可能的方式来搜索这个问题,但未能解决我的问题。无法从远程主机连接到Cassandra

我在我的电脑上运行Windows 8.1。我已经使用Hyper-V将Ubuntu 16.04版本安装为VM。我在我的Ubuntu系统上安装了Cassandra 3.7。

Cassandra能够从本地主机,即从Ubuntu系统进行连接。我创建了keyspace和all,但是当我试图从我的golang代码连接Casandra时,我收到了错误消息。

包主要

import (
    "fmt" 
    "log" 

    "github.com/gocql/gocql" 
) 

func main() { 
    // connect to the cluster 
    cluster := gocql.NewCluster("192.168.137.217") //Put comma separated IPs in case of multiple cluster 
    cluster.Keyspace = "broker_keyspace" 
    cluster.Consistency = gocql.Quorum 
    session, _ := cluster.CreateSession() 
    defer session.Close() 
} 

192.168.137.217是我的虚拟机的IP地址。我得到的错误是说9042端口不允许连接。我试图从我的Windows 8.1系统(这是Cassandra正在运行的虚拟机的主机)运行这段代码。我曾尝试telnet,发现9042端口没有打开主机连接。

我开始玩cassandra.yaml配置文件,但现在它甚至没有在Ubuntu系统上工作。我无法获得使用的节点状态

nodetool status 

我在我的cassandra.yaml文件中的通用配置如下。

rpc_address: localhost 
listen_address: localhost 

我也注释掉在/etc/cassandra/cassandra-env.sh文件下面的线和更新公共名称为127.0.0.1。

# add this if you're having trouble connecting: 
JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=127.0.0.1" 

我重新开始使用服务卡桑德拉重启卡桑德拉,但是当我试图nodetool状态它给下面的错误。

nodetool:无法连接到'127.0.0.1:7199' - ConnectException:'连接被拒绝'。

对不起,长期的问题,但请帮助我真的厌倦了这个问题,努力从最近6-7小时努力。

谢谢..

回答

1

您是否尝试过不使用本地主机和实际使用192.168.137.217地址的一切 - JMX,RPC,听等..?这会是一个问题吗?另外,假设这只是您电脑上的一个虚拟机 - 也许检查防火墙是否关闭?

+0

谢谢回答。我不得不再次安装新的Cassandra版本。我确实改变了listen_address,broadcast_address到我提到的IP它开始工作。看起来像我做了一些配置更改,但未能恢复它。 –

0

您可以按照以下步骤来解决上述问题。

变化cassandra.yamletc/cassandra/cassandra.yaml

- start_rpc: true 
- rpc_address: 0.0.0.0 

以下参数,并取消

broadcast_rpc_address: 1.2.3.4