我正在使用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
答案 0 :(得分:3)
尝试将键空间括在引号""
答案 1 :(得分:2)
我创建了一张关于此的票证(CASSANDRA-5879)。也许意图是使用引号,但它是不直观的。您还可以将-k
命令行参数用于cqlsh。