2012-07-30 78 views
1

我使用cassandra cql3創建了一個KEYSPACE,並試圖使用Cassandra jdbc驅動程序連接到相同的角色。當我嘗試這樣做,我得到的錯誤:連接到在CQL 3中創建的Cassandra KEYSPACE

java.sql.SQLSyntaxErrorException:InvalidRequestException(爲什麼:KEYSPACE MYKEYSPACE不存在) 在org.apache.cassandra.cql.jdbc.CassandraConnection(CassandraConnection.java: 139) 在org.apache.cassandra.cql.jdbc.CassandraDriver.connect(CassandraDriver.java:92) 在java.sql.DriverManager.getConnection(DriverManager.java:582) 在java.sql.DriverManager.getConnection( DriverManager.java:207)

連接字符串是:JDBC:卡桑德拉://本地主機:9160/MYKEYSPACE版本= 3.0.0

我可以連接並從命令行檢查密鑰空間是否存在。 (cqlsh -3 localhost 9160);使用KEYSPACE MYKEYSPACE

任何想法?

回答

3

我的猜測:JDBC區分大小寫。嘗試小寫。

+0

它應該沒有區別。 Keyspace被定義爲大寫。你是對的..這聽起來像是一個bug :-( – 2012-07-30 18:40:40

+1

它不是; CQL 3默認定義爲downcasing標識符(類似於幾個RMDBS系統試圖避免大小寫不匹配)。你可以加雙引號以避免那。 – 2012-07-30 22:46:20