将 Apache Cassandra 连接到 DataGrip

Posted

技术标签:

【中文标题】将 Apache Cassandra 连接到 DataGrip【英文标题】:Connecting Apache Cassandra to DataGrip 【发布时间】:2021-01-20 22:00:43 【问题描述】:

在为 Cassandra 拉取映像并运行容器并创建数据库后,我想将其数据源添加到 DataGrip 以从那里管理数据库。当我运行容器时,我让它也监听端口9842。通过输入命令:

docker pull cassandra docker run -d cassandra-node -p 9842:9842 docker exec -it cassandra-node bash

主机是localhost,我尝试使用jdbc:cassandra://localhost:9842 URL 访问数据库。

我尝试连接,但每次都收到错误消息:

All host(s) tried for query failed (tried: localhost/127.0.0.1:9842 (com.datastax.driver.core.exceptions.TransportException: [localhost/127.0.0.1:9842] Channel has been closed)).

【问题讨论】:

【参考方案1】:

如果您在 localhost 上运行容器并且没有更改 Cassandra 的配置,Cassandra 将在容器中的端口 9042 上启动。 您应该将 docker run 命令更改为

docker run -d cassandra-node -p 9842:9042

这会将容器的端口 9042 绑定到主机上的端口 9842。

【讨论】:

【参考方案2】:

您没有提供很多关于如何在 DataGrip 中配置与 Cassandra 的连接的信息,但您发布的错误表明:

您的节点未在 localhost 上运行,或者 Cassandra 未在端口 9842 上侦听客户端。

您需要连接到 Cassandra 正在侦听 CQL 客户端的地址,即在 rpc_address 中配置的 IP。另外,默认的 CQL 端口是9042

最后,您还需要确保 DataGrip 和节点之间存在网络连接。干杯!

【讨论】:

谢谢,我将端口更改为默认端口,它可以工作。我仍然不明白为什么它不能与默认端口以外的其他端口一起使用。

以上是关于将 Apache Cassandra 连接到 DataGrip的主要内容,如果未能解决你的问题,请参考以下文章

无法连接到 EC2 上的 cassandra 服务器?

将 Spark SQL Hive 服务器连接到 Cassandra?

Cassandra - Dev中心无法连接到Cassandra集群的所有3个节点

如何将 Pyspark 连接到在 docker 上运行的 datastax Cassandra?

如何使用 Cassandra API 将 Python 的 cosmos_client 连接到 Cosmos DB 实例?

Python 无法通过 Docker 连接到 Cassandra