在我为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)).
2条答案
按热度按时间hts6caw31#
如果你在localhost上运行你的容器,并且没有改变Cassandra的配置,Cassandra将在容器的9042端口启动。你应该把你的docker run命令改为
docker run -d cassandra-node -p 9842:9042
这将容器的端口9042绑定到主机上的端口9842。
bcs8qyzn2#
您没有提供有关如何在DataGrip中配置Cassandra连接的大量信息,但您发布的错误表明:
localhost
上运行,或者9842
上侦听客户端。您需要连接到Cassandra正在监听CQL客户端的地址,即在
rpc_address
中配置的IP。此外,默认的CQL端口是9042
。最后,您还需要确保DataGrip和节点之间存在网络连接。干杯!干杯!