【问题标题】:How to connect Cassandra to localhost using cqlsh?如何使用 cqlsh 将 Cassandra 连接到 localhost?
【发布时间】:2014-07-21 12:04:37
【问题描述】:

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

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

我收到一个错误。Thar are:

 Connection error: Could not connect to localhost:9160

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

【问题讨论】:

    标签: cassandra cqlsh


    【解决方案1】:
    1. 检查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

    【讨论】:

    • 感谢您指点方向,实际上在我的情况下我找到了start_rpc: false,将其设置为 true 可以解决问题。
    【解决方案2】:

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

    【讨论】:

    • Daniel - 我正在尝试在谷歌云上运行 cassandra 并想使用外部 IP。我在rpc_address 中指定了外部地址,但在尝试启动cassandra-INFO [main] 2019-12-17 19:00:37,251 Server.java:159 - Starting listening for CQL clients on /xx.xx.xxx.xx:9042 (unencrypted)... Exception (java.lang.IllegalStateException) encountered during startup: Failed to bind port 9042 on xx.xx.x.xx. java.lang.IllegalStateException: Failed to bind port 9042 on x.x.x.x.x. 时出错。你知道我做错了什么吗?
    • 对不起,我不知道你的描述是什么问题。不妨试试 Cassandra 用户邮件列表或其他社区支持论坛?
    【解决方案3】:

    考虑更改/etc/cassandra.yaml

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

    start_rpc: true
    

    【讨论】:

    • 其实我有这样的选择和这样的问题
    【解决方案4】:

    如果您在 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 时得到这个

    【讨论】:

      【解决方案5】:

      如果你在 OSX 上

      brew install cassandra
      

      首先启动 Cassandra

      cassandra
      

      通过 CQL shell 连接

      cqlsh 127.0.0.1
      

      【讨论】:

        【解决方案6】:

        也许先通过bin/cassandra -f 在您的本地计算机上启动 cassandra?

        【讨论】:

          【解决方案7】:

          它没有在 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 解释得更好。

          【讨论】:

          • 但是来自 datastax 的 cassandra 说不要设置 0.0.0.0 来监听 .yaml 文件本身的地址?为什么会这样
          • 当我这样做时,Cassandra 会抛出一个错误。不推荐
          • @JonathanKelsey 没有更多细节,你的评论不是很有帮助
          • 好的,这会导致 Cassandra 2.1.5.469 出现错误。典型的 yaml 会对监听地址有这样的评论:“将其设置为 0.0.0.0 总是错误的。”或者从 Cassandra apache 常见问题解答中,我们有这个注释'Cassandra 是一个基于 gossip 的分布式系统。 ListenAddress 也是“在此处联系我的地址”,即它告诉其他节点到达它的地址。告诉其他节点“在我的任何地址上联系我”是个坏主意;如果集群中的不同节点为您选择不同的地址,就会发生坏事。简而言之,这只是个坏建议
          • @JonathanKelsey 叹了口气。参见第二部分,它清楚地告诉人们设置rpc_address 而不是listen_address
          【解决方案8】:

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

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

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

          这对我有用

          【讨论】:

            【解决方案9】:

            对于2.0.5,以下对我有用..

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

            【讨论】:

            • 你能解释一下为什么这个答案是一个解决方案吗?
            【解决方案10】:

            连接到 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
            

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

            【讨论】:

              【解决方案11】:

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

              #!/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 Home Directory 的 IP 和位置

              【讨论】:

                【解决方案12】:

                使用这个命令

                sudo service cassandra start
                

                启动cassandra然后使用

                cqlsh command
                

                【讨论】:

                  【解决方案13】:

                  考虑更改 /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 重启

                  【讨论】:

                    【解决方案14】:

                    如何在 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
                    

                    【讨论】:

                      猜你喜欢
                      • 2016-02-14
                      • 2015-11-28
                      • 2016-04-11
                      • 2015-02-05
                      • 2014-12-01
                      • 1970-01-01
                      • 2015-05-21
                      • 2014-12-18
                      • 1970-01-01
                      相关资源
                      最近更新 更多