0

我目前正在尝试将我的 nodejs 应用程序连接到同一个 droplet 上的 mongodb。

我目前有auth = true和 droplet ip 到绑定地址,并允许我的公共 ip 到 ufw 端口连接。

这确实允许我从 mongo 指南针远程访问我的液滴。

我遇到的问题是这样的:

假设这是我的连接字符串:mongodb://user:pass@droplet-ip:27017/DB-NAME

该连接字符串在远程工作正常。

当我将连接字符串添加到我的 nodejs 应用程序时,如下所示:mongodb://user:pass@127.0.0.1:27017/DB-NAME 它没有连接。

但是当我mongodb://user:pass@127.0.0.1:27017/ 没有指定 DB-NAME 时,它确实 connect

我确实使用以下方法创建了一个管理员帐户:

  1. use admin
  2. db.createUser({user: "user", pwd: "password", roles: ["root"]});

如果我use admin做一个db.getUsers();我得到:

 users: 
   [ { _id: 'admin.user',
       user: 'user',
       db: 'admin',
       roles: 
        [ { role: 'userAdminAnyDatabase', db: 'admin' },
          { role: 'readWriteAnyDatabase', db: 'admin' } ] } ],
  ok: 1

任何帮助解决这个问题将不胜感激。

4

1 回答 1

0

好吧,它只需要更多的测试。最终是我应该包含?authSource=admin在连接字符串的末尾。

于 2021-08-15T02:31:23.193 回答