- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我最近将 Bottle + uWSGI + Nginx 应用程序升级到了 MongoDB 3.0.2。它在 PyMongo 2.8 上运行良好,但今天我通过运行以下命令升级到 PyMongo 3.0:
pip install --upgrade pymongo
我没有对代码做任何其他更改,但现在我不断收到以下错误。
File "/pymongo/cursor.py", line 968, in __next__ if len(self.__data) or self._refresh():
File "/pymongo/cursor.py", line 905, in _refresh self.__read_preference))
File "/pymongo/cursor.py", line 812, in __send_message **kwargs)
File "/pymongo/mongo_client.py", line 716, in _send_message_with_response server = topology.select_server(selector)
File "/pymongo/topology.py", line 113, in select_server server_selection_timeout))
File "/pymongo/topology.py", line 93, in select_servers self._error_message(selector))
ServerSelectionTimeoutError: No servers found yet
我用来连接数据库的函数如下:
def connect_db(db_name):
global db
host = "localhost"
port = 27017
connection = pymongo.MongoClient(host=host, port=port)
db = connection[db_name]
我已经重启了所有的服务器。静态页面工作正常,但任何试图访问数据库的页面都会挂起并抛出上述错误。但是,如果我转到 mongo
shell 或 Python shell 并查询 MongoDB 服务器,它工作正常。
>>> import pymongo
>>> host = "localhost"
>>> port = 27017
>>> connection = pymongo.MongoClient(host=host, port=port)
>>> db = connection[test]
>>> db.test.insert_one({"test": True});
<pymongo.results.InsertOneResult object at 0x7fc43b8efc80>
似乎只有我的应用程序找不到 MongoDB 服务器。请注意,我使用的是虚拟环境,以防以任何方式影响情况。此外,如果我降级回 PyMongo 2.8,一切正常。
最佳答案
这似乎与 this question 中的问题相同,还有这个 bug .但是我尝试按照那里的建议在 MongoClient() 创建中设置 connect=False 无济于事。目前似乎唯一可行的解决方案是降级到 2.8 (pip install pymongo==2.8
)
关于python - 升级到 PyMongo 3.0 导致 ServerSelectionTimeoutError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29663931/
我是第一次尝试 pymongo,但一直收到 ServerSelectionTimeoutError。使用 mongo 命令行登录时,我运行如下命令 $ mongo-3.0 --ssl test.net
我正在尝试运行非常简单的代码来弄清楚如何将 pymongo 与 MongoDB Atlas Cloud 结合使用。 这是示例代码 import pymongo client = pymongo.Mon
我在使用 PyMongo 3.0 时遇到以下问题。有没有人知道如何解决这个问题? from pymongo import MongoClient # making a Connection with
我正在使用: Python 3.4.2 PyMongo 3.0.2 mongolab 运行 mongod 2.6.9 uWSGI 2.0.10 CherryPy 3.7.0 nginx 1.6.2 u
我一直在努力使用 Django、Djongo、Mongo 和 Docker Compose 运行一个简单的应用程序。我的设置如下所示: docker-compose.yml services: m
尝试从本地计算机连接到 CosmosDB 数据库时,我收到了 Getting pymongo.errors.ServerSelectionTimeoutError 错误。 uri = "uri giv
我最近将 Bottle + uWSGI + Nginx 应用程序升级到了 MongoDB 3.0.2。它在 PyMongo 2.8 上运行良好,但今天我通过运行以下命令升级到 PyMongo 3.0:
我使用的是 Python 3.7 和 Flask 1.0.2 I plugged my app to mongoDB Atlas, and all works fine in local client
我正在学习使用 pymongo,但我被这个网站的介绍代码 https://realpython.com/introduction-to-mongodb-and-python/#sql-vs-nosql
我正在尝试连接到另一台服务器上的 MongoDB 数据库。唯一的问题是连接到服务器需要专门版本的 Kerberos。为了克服这个问题,我使用 SSH 隧道为 Pymongo 打开一个本地端口以连接数据
我正在尝试将 docker-compose 与我的 django-rest 应用程序一起使用。当我自己运行它时 python manage.py runserver 它运行良好。 如果我尝试使用 do
pymongo.errors.ServerSelectionTimeoutError: localhost:27017: [Errno 8] nodename or servname provided
我正在关注 w3schools 的 python 教程。我刚刚开始了 mongoDB 章节。我安装了 mongoDB 并检查了它: import pymongo 没有得到错误。 但是一旦我输入以下代码
我已经使用一些 html 模板为我拥有的 flask 应用程序构建了一个 docker 图像,在运行我的图像后,我转到 localhost:5000,这将我带到我的 flask 应用程序的起始页面。我
我是一名优秀的程序员,十分优秀!