【问题标题】:Cannot connect to remote mongodb server无法连接到远程 mongodb 服务器
【发布时间】:2018-04-08 08:59:43
【问题描述】:

我将 bindIp 设置更改为

bindIp: 127.0.0.1, 0.0.0.0

在我托管在 Linode 上的 ubuntu 服务器上的 mongod.conf 中,并重新启动 mongod,状态看起来正常。

我在ufw上打开了mongodb端口

sudo ufw 状态 状态:活跃

行动自 -- ------ ---- 22/tcp 允许任何地方 10000
允许任何地方 Nginx Full
允许任何地方 3333
允许任何地方 27017
允许任何地方 22/tcp (v6)
允许任何地方 (v6) 10000 (v6)
ALLOW Anywhere (v6) Nginx Full (v6)
允许任何地方 (v6) 3333 (v6)
允许任何地方 (v6) 27017 (v6)
允许任何地方 (v6)

从我的 mac 连接到它会引发错误:

mongo mongodb://admin:secret@ubuntuipaddress/fielddb?authSource=admin MongoDB shell 版本 v3.6.2 连接到: mongodb://ubuntuipaddress/fielddb?authSource=admin 2018-04-08T13:47:32.212 W 网络 [thread1] 无法连接到 ubuntuipaddress:27017,in(轮询后检查套接字是否有错误), 原因:连接被拒绝 2018-04-08T13:47:32.214 E QUERY
[thread1] 错误:无法连接到服务器 ubuntuipaddress:27017, 连接尝试失败:connect@src/mongo/shell/mongo.js:251:13 @(connect):1:6 异常:连接失败

如何解决这个问题?

【问题讨论】:

  • 你能在你的 Mac 上telnet ubuntuipaddress 27017 吗?
  • telnet 到 27017 我收到连接被拒绝错误,但 telnet 到 3333 工作正常
  • 不太确定 3333 上正在运行什么。但是,尝试运行sudo ufw allow 27017/tcp?
  • 我尝试了 sudo ufw allow 27017/tcp 并确认已进行此更改,但没有产生任何影响
  • 你能把MongoDB监听的公共端口改成别的吗?

标签: linux mongodb ubuntu linode


【解决方案1】:

为在 Ubuntu 上运行的 Mongodb 启用远程访问的基本步骤是:

  1. 在 Mongodb 中至少设置一个用户(具有 root 权限的管理员)
  2. 编辑配置文件(即 sudo nano etc/mongodb.conf)
  3. 确保
bind_ip = 0.0.0.0 
port = 27017 
auth = true 

已设置(且未注释)

  1. 在 UFW 中添加防火墙规则以允许来自远程 IP 地址(或任何地方)的 27017

你应该很高兴。

【讨论】:

    【解决方案2】:

    禁用防火墙并尝试查看是否可以连接,如果可以,那么这是您的 fw 规则。先试试这个,看看是否有帮助。

    【讨论】:

    • 我做了 sudo ufw disable 但同样的问题——连接到 2701 被拒绝。我证实 mongod 正在运行,并且能够在 linode vps 上运行本地到 mongodb 的应用程序,它们可以毫无问题地访问和写入数据。
    • 这里相同...在本地运行,无法远程连接
    【解决方案3】:

    问题是 mmongod.conf 中的 bindIP 设置错误。改为:

    bindIp: 127.0.0.1,ip_address_of_host_running_mondgod

    解决了这个问题。替换 ip_address_of_host_running_mondgod 运行 mongod 的主机的 IP 地址如 137.142.177.4

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-19
      • 2017-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多