如何使用cqlsh将Cassandra连接到localhost?

时间:2014-06-01 03:15:29

标签: cassandra cqlsh

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

但是,我无法使用cqlsh

从Cassandra服务器本身连接

我收到了错误.Thar是:

 Connection error: Could not connect to localhost:9160

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

14 个答案:

答案 0 :(得分:20)

  1. 通常默认cassandra.yaml
  2. 检查rpc_port :行的= 9160文件
  3. 登录托管cassandra
  4. 的计算机
  5. 尝试cqlsh 127.0.0.1 9160:无论如何都应该没问题
  6. 尝试cqlsh [IP of host] 9160:如果确定,则cassandra可以从lan访问,如果正常,则cassandra无法从lan访问,只能localhost 127.0.0.1

答案 1 :(得分:8)

您需要通过rpc_address中定义的cassandra.yaml连接到cassandra。例如,我使用cqlsh 10.0.80.49 9160

答案 2 :(得分:8)

考虑更改/etc/cassandra.yaml

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

start_rpc: true

答案 3 :(得分:6)

如果你在cassandra日志中看到这个:

$.ajax({
    url:"https://api.themoviedb.org/xxx",
    crossDomain: true,
    dataType: "jsonp",
    dataObj : index,
    success: function (response, textStatus, xhr) {
        console.log('success');
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
        console.log('error');
    },
    statusCode: {
      429: function() {
        alert( "Exceeded request limit." );
      }
    }
});

然后只需打开一个终端并

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

如INFO消息中所写。现在应该工作。我的系统升级到cassandra 2.2.0

时得到了这个

答案 4 :(得分:5)

如果你在OSX上

brew install cassandra

首先启动Cassandra

cassandra

Start the Cassandra 通过CQL shell连接

cqlsh 127.0.0.1

enter image description here

答案 5 :(得分:4)

首先可以bin/cassandra -f在本地计算机上启动cassandra吗?

答案 6 :(得分:3)

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

更新(@ c45556037):

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

答案 7 :(得分:1)

我在启动cqlsh时面临同样的情况。启动cassandra时出现以下错误

在终端输入---- cassandra -----

它将显示所有jar和日志文件。如果终端挂起,只需从中逃脱,然后输入cqlsh。然后它将进入cassandra cli。

这对我有用

答案 8 :(得分: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

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

答案 9 :(得分:0)

2.0.5以下适用于我..

   $CASSANDRA_HOME/bin/cqlsh xx.xx.xxx.xxx 9160

答案 10 :(得分: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和位置

答案 11 :(得分:0)

使用此命令

sudo service cassandra start

启动cassandra然后使用

cqlsh command

答案 12 :(得分: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 service cassandra restart

答案 13 :(得分:0)

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ReferenceAssemblies