【问题标题】:Keyspace created with Astyanax is not visible by cqlshcqlsh 看不到使用 Astyanax 创建的键空间
【发布时间】:2013-08-13 12:26:30
【问题描述】:

我正在使用 Cassandra 1.2.6 和 Astyanax。我使用 Java 创建了一个名为 DummyKeyspace 的键空间。我可以从cassandra-cli 访问该键空间,但不能从cqlsh 访问。为什么?

这是我的 Java 代码:

public void createKeyspace(Cluster cluster,String KEYSPACE_NAME,String STRATEGY, String REPLICA_FACTOR) throws ConnectionException
    {
        if(cluster.describeKeyspace(KEYSPACE_NAME) == null)
        {
            KeyspaceDefinition ksDef = cluster.makeKeyspaceDefinition();

            Map<String,String> stratOptions = new HashMap<String,String>();
            stratOptions.put("replication_factor", REPLICA_FACTOR);

            ksDef.setName(KEYSPACE_NAME)
                .setStrategyOptions(stratOptions)
                .setStrategyClass(STRATEGY);

            cluster.addKeyspace(ksDef);
            System.out.println("Keyspace " + KEYSPACE_NAME + " created and added to cluster.");
        }
        else
        {
            System.out.println("Keyspace " + KEYSPACE_NAME + " already existed.");
        }
    }

这是我尝试到达它时的错误:

cqlsh> USE DummyKeyspace;
Bad Request: Keyspace 'dummykeyspace' does not exist

【问题讨论】:

  • 是copypasta吗?当您使用“DummyKeyspace”时,您是如何收到对“twitter2”的错误请求的?
  • 哦,抱歉,我忘记更改那部分了。当我公开分享代码段时,我通常不使用代码段的实际名称。所以这就是它存在的原因。已编辑。
  • 是的,我的代码不是 copypasta。
  • cqlsh 中describe keyspaces; 输出什么?
  • 好吧,感谢您的评论,我意识到 cql 将键空间名称小写,因此我无法访问它。我尝试用小写字母创建键空间并且它有效。然后查找大写解决方案,这里是:USE "DummyKeyspace"

标签: java cassandra astyanax cqlsh


【解决方案1】:

尝试用引号将键空间括起来""

【讨论】:

    【解决方案2】:

    我为此创建了一张票 (CASSANDRA-5879)。也许意图是使用引号,但这是不直观的。您也可以使用-k 命令行参数到 cqlsh。

    【讨论】:

      猜你喜欢
      • 2013-01-11
      • 2013-09-01
      • 2015-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-26
      • 2015-01-15
      • 2012-08-08
      相关资源
      最近更新 更多