【问题标题】:Cassandra cqlsh "unable to connect to any servers"Cassandra cqlsh“无法连接到任何服务器”
【发布时间】:2016-01-05 06:51:08
【问题描述】:

在命令行执行 cqlsh.bat 时收到以下消息

Connection error: ('Unable to connect to any servers', {'127.0.0.1': ProtocolError("cql_version '3.3.0' is not supported by remote (w/ native protocol). Supported versions: [u'3.2.0']",)})

我正在运行 Python 2.7.10 版和 Cassandra 2.2.1 版。不确定它是否相关,但是当我启动 Cassandra 服务器时,我需要在 PowerShell 上运行“Set-ExecutionPolicy Unrestricted”,否则它不起作用。

【问题讨论】:

    标签: python cassandra


    【解决方案1】:
    ProtocolError("cql_version '3.3.0' is not supported by remote (w/ native protocol). Supported versions: [u'3.2.0']"
    

    表示您正在运行的 C* 版本与 CQLSH 运行的 python 驱动程序之间存在版本不匹配。确保它们都在同一个版本中。

    【讨论】:

    • 如何找出我正在运行的 C* 版本?
    • 我正在运行 2.1.9 版
    • 上面你说你正在运行 2.2.1 。我的猜测是你正在使用 2.2.1 中的 cqlsh 来对抗 2.1.9
    • 没有从答案中得出的解决方案
    【解决方案2】:

    我在执行 bin/cqlsh 时遇到了类似的问题。我看到以下错误:

    Connection error: ('Unable to connect to any servers', {'cassandra-1.alpha.mimosacloud.co': ProtocolError("cql_version '3.2.0' is not supported by remote (w/ native protocol). Supported versions: [u'3.2.1']",)})
    

    我的远程服务器使用的是 cassandra 2.1.12,我尝试使用与 apache-cassandra-2.1.7 捆绑的 cqlsh 连接到它。当我从this link 下载 apache-cassandra-2.1.12 并使用捆绑的 cqlsh 时,我的问题得到了解决。

    我的服务器的详细信息是: [cqlsh 5.0.1 |卡桑德拉 2.1.12 | CQL 规范 3.2.1 |原生协议 v3]

    【讨论】:

      【解决方案3】:

      您可以使用标志强制 cqlsh 使用特定的 cql 版本

      --cqlversion="#.#.#"

      示例 cqlsh 用法(和键/值):

      cqlsh 12.34.56.78 1234 -u username -p password --cqlversion="3.2.0"
      cqlsh (IP ADDR)  (PORT)  (DB_USERN)  (DB_PASS)               (VER)
      

      【讨论】:

        【解决方案4】:

        编辑 cqlsh.py 文件(您可以使用which cqlsh 找到它)并更改 DEFAULT_CQLVER = 'z.z.z' 到支持的版本。

        【讨论】:

        • 这应该是公认的答案,因为它不会强制您将其他参数传递给 cqlsh
        猜你喜欢
        • 2016-12-17
        • 2023-04-06
        • 2017-02-16
        • 2015-01-16
        • 2016-05-20
        • 2022-06-10
        • 2016-03-02
        • 2016-02-14
        • 2016-04-11
        相关资源
        最近更新 更多