Cassandra连接报错unconfigured table schema_keyspaces适配版本咨询
问题根因
你遇到的com.datastax.driver.core.exceptions.InvalidQueryException: unconfigured table schema_keyspaces报错,本质是Cassandra版本和Datastax Java驱动版本不匹配导致的。
Cassandra 3.x版本对系统表结构做了重构,废弃了2.x版本中位于system键空间下的schema_keyspaces表,相关元数据迁移到了system_schema键空间下的keyspaces表。你当前使用的驱动版本过旧,仍然按照2.x的系统表结构发起查询,因此触发报错。
适配版本方案
你当前使用的Cassandra 3.11.10,需配套使用Datastax Java Driver 3.0.x ~ 3.11.x版本:
- 不要使用2.x及更低版本的驱动,会出现上述系统表查询报错
- 不要使用4.x及更高版本的驱动,4.x版本做了全链路API重构,包名、调用逻辑均不兼容旧版本代码
以Maven依赖为例,正确的依赖配置如下:
<dependency> <groupId>com.datastax.cassandra</groupId> <artifactId>cassandra-driver-core</artifactId> <version>3.11.2</version> </dependency>
注意事项
- Datastax Java Driver 3.x系列原生支持Cassandra 2.1~3.11全版本,你当前环境的CQL 3.4.4、原生协议v4均可完美适配
- 你当前使用的JRE 1.8.0_181、Tomcat 9.0.50环境与3.x系列驱动无兼容性冲突,替换驱动版本后重启服务即可解决问题
- 若替换版本后仍有报错,可执行
mvn dependency:tree命令排查项目中是否存在多版本驱动冲突,移除低版本的冗余依赖即可。
内容的提问来源于stack exchange,提问作者eberteo
相关产品推荐
相关产品推荐

