当前位置: 首页 > 面试题库 >

如何将远程mongodb与pymongo连接

郏实
2023-03-14
问题内容

当我使用MongoChef连接远程mongo数据库时,我使用下一个参数:

服务器

  • 服务器: 本地主机
  • 端口: 27017

SSH隧道

  • SSH地址: 10.1.0.90

  • 端口: 25

  • SSH用户 用户名

  • SSH密码: 密码

当我与Pymongo连接时,我有以下代码

import pymongo

MONGO_HOST = "10.1.0.90"
MONGO_PORT = 25
MONGO_DB = "db_name"
MONGO_USER = "username"
MONGO_PASS = "password"

con = pymongo.MongoClient(MONGO_HOST, MONGO_PORT)
db = con[MONGO_DB]
db.authenticate(MONGO_USER, MONGO_PASS)

print(db)

但是我有下一个错误:

pymongo.errors.ServerSelectionTimeoutError: 10.1.2.84:27017: [Errno 111] Connection refused

拜托,您能帮我解决这个问题吗?我做错了什么?


问题答案:

适用于我的解决方案。

from sshtunnel import SSHTunnelForwarder
import pymongo
import pprint

MONGO_HOST = "REMOTE_IP_ADDRESS"
MONGO_DB = "DATABASE_NAME"
MONGO_USER = "LOGIN"
MONGO_PASS = "PASSWORD"

server = SSHTunnelForwarder(
    MONGO_HOST,
    ssh_username=MONGO_USER,
    ssh_password=MONGO_PASS,
    remote_bind_address=('127.0.0.1', 27017)
)

server.start()

client = pymongo.MongoClient('127.0.0.1', server.local_bind_port) # server.local_bind_port is assigned local port
db = client[MONGO_DB]
pprint.pprint(db.collection_names())

server.stop()


 类似资料:
  • 我已经尝试了以下代码: 但它显示了一些错误: New-Object:异常调用". ctor"与"1"参数:"无法加载文件或程序集"System.运行时。InteropServices.RuntimeInformation, Version=4.0.0.0,'区域性=中性, PublicKeyToken=b03f5f7f11d50a3a'或其依赖项之一。系统找不到指定的文件。" at D:\用户\x

  • 我正在尝试使用pymongo连接到MAC中的mongo。我得到以下错误- 回溯(最近一次调用):文件“”,第1行,从pymongo导入MongoClient导入错误:无法导入名称“MongoClient” 我也试过连接。但它给出了同样的错误。有什么帮助吗?

  • 我们刚刚在Windows和Linux上安装了JProfiler。安装似乎进行得很顺利。 然后,我们在不同的Linux机器上安装了ejtlicense服务器,这似乎也进行得很顺利。 但是,当我们尝试从安装了JProfiler的Windows或Linux连接到Linux许可证服务器时,我们会收到一条错误消息,指出与许可证服务器通信时出错。 这两个系统都可以ping许可证服务器的主机名和IP地址。我已经

  • 问题内容: 我在查询mongoDB时尝试使用排序功能,但是失败了。相同的查询在MongoDB控制台中有效,但不适用于此处。代码如下: 我得到的错误如下: 我在其他地方找到了一个链接,该链接说如果使用pymongo,则需要在密钥的前面放置一个“ u”,但这也不起作用。任何其他人都可以使用它或这是一个错误。 问题答案: 在pymongo中,采用和作为参数。 因此,假设您要排序,那么您应该 对于多个字段

  • 我在我的运行系统中有MongoDB和Robomongo,我使用Robomongo作为客户端。 我已将MongoDB安装在另一个系统上,我将其视为服务器,我想将我系统的Robomongo(作为客户端)连接到另一个系统(服务器)上的MongoDB。我应该采取哪些步骤来实现同样的目标? 我使用的是机器名,因为系统的IP地址不是静态的。但即使我使用系统的IP地址,我也会遇到同样的错误: 连接失败,无法连接

  • 问题内容: 我正在尝试使用pymongo模块从URL中提取一个JSON文件并将其按原样发送到mongoDB。 我有以下代码 执行此操作后,出现此错误,引发TypeError(“ documents must be a non-empty list”)TypeError:文档必须为非空列表 理想情况下,我希望能够从url中提取json并更新mongoDB,因为此json文件每周都会更新。谢谢 问题答