Python Cassandra 驱动程序:连接到服务器上的 Docker 容器 - cassandra.UnresolvableContactPoints:{}
Python Cassandra driver: connect to Docker container on server - cassandra.UnresolvableContactPoints: {}
我在自定义服务器上的 docker 容器中运行 cassandra。
我这样启动 cassandra docker:
docker run --name cassandra -p 9042:9042 -d cassandra:latest
当我想通过来自 datastax 的 python cassandra 驱动程序连接到服务器时,如下所示:
from cassandra.cqlengine import connection
connection.setup(["http://myserver.myname.com"], "cqlengine", protocol_version=3)
抛出异常:
File "C:\LONG\PATH\TO\venv\lib\site-packages\cassandra\cqlengine\connection.py", line 106, in setup
self.cluster = Cluster(self.hosts, **self.cluster_options)
File "cassandra\cluster.py", line 1181, in cassandra.cluster.Cluster.__init__
cassandra.UnresolvableContactPoints: {}
python-BaseException
经过数小时的 docker 网络权限搜索,我找到了简单的解决方案,所以也许这对您也有帮助。
简单的解决方案是从服务器 url 中删除“http://”并更改我的代码
connection.setup(["http://myserver.myname.com"], "cqlengine", protocol_version=3)
到
connection.setup(["myserver.myname.com"], "cqlengine", protocol_version=3)
我认为这是一个 docker 网络问题,我花了很多时间才将其归因于这个简单的错误
我在自定义服务器上的 docker 容器中运行 cassandra。
我这样启动 cassandra docker:
docker run --name cassandra -p 9042:9042 -d cassandra:latest
当我想通过来自 datastax 的 python cassandra 驱动程序连接到服务器时,如下所示:
from cassandra.cqlengine import connection
connection.setup(["http://myserver.myname.com"], "cqlengine", protocol_version=3)
抛出异常:
File "C:\LONG\PATH\TO\venv\lib\site-packages\cassandra\cqlengine\connection.py", line 106, in setup
self.cluster = Cluster(self.hosts, **self.cluster_options)
File "cassandra\cluster.py", line 1181, in cassandra.cluster.Cluster.__init__
cassandra.UnresolvableContactPoints: {}
python-BaseException
经过数小时的 docker 网络权限搜索,我找到了简单的解决方案,所以也许这对您也有帮助。
简单的解决方案是从服务器 url 中删除“http://”并更改我的代码
connection.setup(["http://myserver.myname.com"], "cqlengine", protocol_version=3)
到
connection.setup(["myserver.myname.com"], "cqlengine", protocol_version=3)
我认为这是一个 docker 网络问题,我花了很多时间才将其归因于这个简单的错误