代码之家  ›  专栏  ›  技术社区  ›  Coditoergosum

无法使用pymongo中的主机名连接到mongod

  •  0
  • Coditoergosum  · 技术社区  · 6 年前

    我正在使用pymongo连接到mongod。 以下代码有效

    def init_db():
    client = MongoClient('localhost', 27017)
    db = client.test_db
    return db
    

    然而,当我将上面的“localhost”更改为我的机器的主机名时,就像这样

    def init_db():
    client = MongoClient('p-linux', 27017)
    db = client.test_db
    return db
    

    它不起作用。有什么建议吗?

    2 回复  |  直到 6 年前
        1
  •  0
  •   Neha Tawar    6 年前

    在中更改以下内容后重试 /etc/mongod。形态 文件

    # Listen to local interface only. Comment out to listen on all interfaces. 
    #bind_ip = 127.0.0.1
    

    并通过以下方式重新启动服务

    sudo service mongod restart
    

    注释掉#bind\u ip=127.0.0.1将向任何人/任何地方打开它。确保您的防火墙/iptables过滤未经请求的连接和/或在/etc/mongod中添加安全:授权:“enabled”。否则,任何人/任何地方都可以向您的DB写入。

    此外,当您想连接到localhost或默认配置以外的主机时,您可以执行以下操作:

    mongo <host>
    

    意味着在从API连接之前,您应该确认您的客户端从终端或mongo连接到哪里。exe并检查mongod服务器url,然后确保在API中使用相同的url。

        2
  •  0
  •   Coditoergosum    6 年前

    更新:我通过使用--bind\u ip\u all选项启动mongod解决了我的问题(当然,在打开身份验证之后)