DBeaver连接Cassandra执行查询时出现NoNodeAvailableException错误求助
解决DBeaver连接Cassandra执行查询时的NoNodeAvailableException问题
检查Cassandra节点状态与网络连通性
先在Cassandra节点上执行nodetool status,确认节点状态为UN(Up/Normal)。再在DBeaver所在机器上用telnet <Cassandra节点IP> 9042或nc -zv <Cassandra节点IP> 9042测试9042端口的连通性,该端口是Cassandra原生传输协议的默认端口。修正DBeaver连接配置细节
连接测试通过不代表查询配置完全正确:- 确认Contact Points填写的是Cassandra集群中可用节点的真实IP,避免使用
localhost(除非DBeaver与Cassandra部署在同一机器) - 在连接配置的「Driver Properties」中,设置
local-datacenter为你的Cassandra节点所在数据中心名称(可通过nodetool status查看DC列值,默认是datacenter1),适配默认的DCAwareRoundRobin负载均衡策略 - 验证
protocol.version设置为v4,该版本对应Cassandra 4.0.x的协议标准
- 确认Contact Points填写的是Cassandra集群中可用节点的真实IP,避免使用
确认Cassandra账号权限
如果Cassandra开启了认证,检查DBeaver使用的账号是否拥有目标表所在keyspace的查询权限,执行以下CQL语句补全权限:GRANT SELECT ON KEYSPACE <你的keyspace名称> TO <DBeaver登录账号>;排查驱动兼容性
Cassandra 4.0.12与DataStax JDBC Driver 4.9.0存在部分兼容性差异,可尝试将DBeaver中的Cassandra驱动升级到4.10+版本,或降级到4.8.x版本测试。检查Cassandra监听配置
打开Cassandra的cassandra.yaml配置文件:- 确认
listen_address或broadcast_address设置为节点的真实公网/内网IP,而非127.0.0.1 - 检查
native_transport_port是否为9042,且该端口未被防火墙拦截
修改配置后重启Cassandra服务。
- 确认
内容的提问来源于stack exchange,提问作者Елизавета Белова
相关产品推荐
相关产品推荐

