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

确保您已创建 logdb 文件夹或更改数据和日志文件夹所在的路径。 通过指定配置文件启动 mongodb。

【讨论】:

感谢您的快速跟进。我没有找到配置文件,所以我在 MongoDb bin 目录中创建了一个。我将 bindIp 标志设置为 0.0.0.0。我使用这个配置文件启动了 MongoDb 服务器。当我使用“localhost”连接字符串运行应用程序时,它运行正常。但是,当我将 localhost 更改为“mongodb://my_ip:27017”时,我仍然超时 您使用的是哪个操作系统?如果是 linux,该文件将位于 /etc/mongod.conf 当我输入 cmd 时,MongoDB 服务器似乎正在读取这个配置文件:mongod --config "/bin/mongodb.conf"。我在嘲笑一些参数时看到了一些错误消息。 谢谢你的作品!另外,我的问题是我使用的是机器公共 IP 地址而不是私有地址【参考方案2】:

验证您的本地接口是否已启动。它应该解释超时。

ifup lo

【讨论】:

以上是关于MongoDB 服务器配置的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB分片集群配置实例

MongoDB 学习笔记一: 配置

mongodb主从配置

Mongodb的分布式配置

配置MongoDB服务时出现问题

MongoDB 通过配置文件启动及注册服务