将 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的主要内容,如果未能解决你的问题,请参考以下文章
将 Spark SQL Hive 服务器连接到 Cassandra?
Cassandra - Dev中心无法连接到Cassandra集群的所有3个节点
如何将 Pyspark 连接到在 docker 上运行的 datastax Cassandra?
如何使用 Cassandra API 将 Python 的 cosmos_client 连接到 Cosmos DB 实例?