【发布时间】: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