MongoDB 服务器配置
Posted
技术标签:
【中文标题】MongoDB 服务器配置【英文标题】:MongoDB Server Configuration 【发布时间】:2016-05-27 11:29:55 【问题描述】:我的本地主机上运行着一个 MongoDB 服务器。我编写了一个简单的 Python 程序,它使用“localhost”读取/写入数据库;但是,我想让其他客户端访问我的 MongoDB 服务器。目前,我不关心访问安全性,并愿意授予任何人访问权限。我应该如何配置 Mongo 服务器来执行此操作?
这是连接本地主机的简单程序。
from pymongo import MongoClient
connection = MongoClient("Localhost")
db = connection.hockey.players
results = db.find()
print()
print('+-+-+-+-+-+-+-+-+-+-+-+-+-+-')
for record in results:
print(record['name'] + ',',record['position'])
connection.close()
我收到的错误消息: 文件“C:/Users/Peter/PycharmProjects/Test/helloWorld.py”,第 8 行,在 用于记录结果: 文件“C:\Python34\lib\site-packages\pymongo\cursor.py”,第 1097 行,在下一个 如果 len(self.__data) 或 self._refresh(): 文件“C:\Python34\lib\site-packages\pymongo\cursor.py”,第 1019 行,在 _refresh self.__read_concern)) 文件“C:\Python34\lib\site-packages\pymongo\cursor.py”,第 850 行,在 __send_message **kwargs 中) _send_message_with_response server = topology.select_server(selector) 中的文件“C:\Python34\lib\site-packages\pymongo\mongo_client.py”,第 777 行 文件“C:\Python34\lib\site-packages\pymongo\topology.py”,第 142 行,在 select_server 地址中)) 文件“C:\Python34\lib\site-packages\pymongo\topology.py”,第 118 行,在 select_servers self._error_message(selector)) pymongo.errors.ServerSelectionTimeoutError: x.y.z.w:27017: 超时
Process finished with exit code 1
下面是我当前的本地主机设置,如果我在托管 MongoDB 的客户端上运行它,它可以正常工作。 Current setup
谢谢
【问题讨论】:
【参考方案1】:给他们您的 IP 地址和端口号(默认值:27017)以连接到您的服务器。还将mongod.conf
文件中的bindIp
编辑为bindIp: 0.0.0.0
。要求他们使用以下方式连接到您的数据库:
from pymongo import MongoClient
connection = MongoClient("mongodb://your_ip:yourport")
如果您使用的是 Windows,请创建配置文件 mongod.cfg
。并将条目添加为
systemLog:
destination: file
path: c:\data\log\mongod.log
storage:
dbPath: c:\data\db
net:
bindIp: 0.0.0.0
port: 27017
确保您已创建 log
和 db
文件夹或更改数据和日志文件夹所在的路径。
通过指定配置文件启动 mongodb。
【讨论】:
感谢您的快速跟进。我没有找到配置文件,所以我在 MongoDb bin 目录中创建了一个。我将 bindIp 标志设置为 0.0.0.0。我使用这个配置文件启动了 MongoDb 服务器。当我使用“localhost”连接字符串运行应用程序时,它运行正常。但是,当我将 localhost 更改为“mongodb://my_ip:27017”时,我仍然超时 您使用的是哪个操作系统?如果是 linux,该文件将位于/etc/mongod.conf
。
当我输入 cmd 时,MongoDB 服务器似乎正在读取这个配置文件:mongod --config "验证您的本地接口是否已启动。它应该解释超时。
ifup lo
【讨论】:
以上是关于MongoDB 服务器配置的主要内容,如果未能解决你的问题,请参考以下文章