无法连接到远程 mongodb 服务器

Cannot connect to remote mongodb server

我将 bindIp 设置更改为

bindIp: 127.0.0.1, 0.0.0.0

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

我在 ufw

上打开了 mongodb 端口

sudo ufw 状态 状态:活跃

To Action From -- ------ ---- 22/tcp ALLOW Anywhere 10000
ALLOW Anywhere Nginx Full
ALLOW Anywhere 3333
ALLOW Anywhere 27017
ALLOW Anywhere 22/tcp (v6)
ALLOW Anywhere (v6) 10000 (v6)
ALLOW Anywhere (v6) Nginx Full (v6)
ALLOW Anywhere (v6) 3333 (v6)
ALLOW Anywhere (v6) 27017 (v6)
ALLOW Anywhere (v6)

从我的 mac 连接到它会抛出错误:

mongo mongodb://admin:secret@ubuntuipaddress/fielddb?authSource=admin MongoDB shell version v3.6.2 connecting to: mongodb://ubuntuipaddress/fielddb?authSource=admin 2018-04-08T13:47:32.212 W NETWORK [thread1] Failed to connect to ubuntuipaddress:27017, in(checking socket for error after poll), reason: Connection refused 2018-04-08T13:47:32.214 E QUERY
[thread1] Error: couldn't connect to server ubuntuipaddress:27017, connection attempt failed : connect@src/mongo/shell/mongo.js:251:13 @(connect):1:6 exception: connect failed

如何解决这个问题?

关闭你的防火墙并尝试看看你是否可以连接,如果你可以那么这是你的防火墙规则。先试试这个,看看是否有帮助。

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

bindIp: 127.0.0.1,ip_address_of_host_running_mondgod

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

在 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

你应该可以开始了。