在DBeaver中用JDBC驱动连接ScyllaDB遇错误,求成功方案
ScyllaDB第三方JDBC驱动连接问题及解决方案
问题描述
我尝试通过第三方JDBC驱动连接ScyllaDB,参考官方文档操作,步骤如下:
- 访问maven仓库搜索
com.scylladb,获取java-driver-core-shaded包 - 打开DBeaver进行配置:
- 依次点击
Database > Driver Manager > New > Library > Add file - 选择下载好的shaded
.jar文件 - 返回
Settings标签页,填写配置信息后点击ok
- 依次点击
- 进入
Database > New connection,填写JDBC地址:jdbc:cassandra://hostname:9042
操作后遇到错误:
Can't create driver instance Error during driver instantiation Error during driver instantiation com.datastax.oss.driver.api.core.CqlSession.<init>() com.datastax.oss.driver.api.core.CqlSession.<init>()
换用com.ing.data.cassandra.jdbc.CassandraDriver驱动时,能查看数据库模式,但查询表时出现:
SQL Error: com.datastax.oss.driver.api.core.NoNodeAvailableException: No node was available to execute the query
可行的连接方案
1. 选择完整的驱动包
不要仅添加java-driver-core-shaded,需使用Scylla官方提供的完整JDBC驱动包(如scylla-jdbc-driver),该包包含所有必要依赖,避免因缺少组件导致驱动实例创建失败。
2. 修正DBeaver驱动配置
- 在Driver Manager新建驱动时,指定正确的驱动类:
com.scylladb.jdbc.Driver - JDBC URL必须包含
localdatacenter参数,格式为:
数据中心名称可通过ScyllaDB的jdbc:scylladb://<host>:9042/<keyspace>?localdatacenter=<你的数据中心名称>nodetool status命令查看。
3. 解决节点不可用异常
- 验证ScyllaDB节点的9042端口是否可访问,本地可执行
telnet <host> 9042或nc -zv <host> 9042测试连通性 - 若未配置ScyllaDB的SSL,需在DBeaver驱动设置中禁用SSL选项
- 确认JDBC URL中的主机地址正确,避免使用localhost(如果ScyllaDB部署在远程服务器)
验证
配置完成后点击DBeaver的「测试连接」,连接成功即可正常执行表查询操作。
内容的提问来源于stack exchange,提问作者jlarks32
相关产品推荐
相关产品推荐

