通过IP连接时,MongoDB出现“ UserNotFound”错误

时间:2018-08-21 19:08:34

标签: mongodb

我有一个新的mongoDB安装。

我已按照此处的指南创建了一个“管理员”用户:https://docs.mongodb.com/manual/tutorial/enable-authentication/

我还按照该指南的第6步将其设置为“普通”用户。

当我使用罗盘使用主机名“ localhost”和用户名“ admin”连接到数据库时,我可以连接。与“普通”用户同上。

我正在通过以下命令运行绑定到IP XXX.XXX.XXX.16的mongod实例:mongod --auth-端口27017 --bind_ip xxx.xxx.xxx.16

当我将Compass中的主机名更改为XXX.XXX.XXX.16时,mongod命令窗口将显示尝试的连接,并且该连接已被接受...然后说“ UserNotFound:找不到用户admin @ admin” ...并结束连接。

在Compass中点击“连接”后,完整的mongod日志如下所示:

2018-08-21T14:12:50.321-0500 I NETWORK  [initandlisten] waiting for connections on port 27017
2018-08-21T14:13:12.258-0500 I NETWORK  [listener] connection accepted from xxx.xxx.xxx.16:61256 #1 (1 connection now open)
2018-08-21T14:13:12.378-0500 I NETWORK  [conn1] received client metadata from xxx.xxx.xxx.16:61256 conn1: { driver: { name: "nodejs", version: "3.0.7" }, os: { type: "Windows_NT", name: "win32", architecture: "x64", version: "6.2.9200" }, platform: "Node.js v8.2.1, LE, mongodb-core: 3.0.7", application: { name: "MongoDB Compass Community" } }
2018-08-21T14:13:12.385-0500 I ACCESS   [conn1] SASL SCRAM-SHA-1 authentication failed for admin on admin from client xxx.xxx.xxx.xx:61256 ; UserNotFound: Could not find user admin@admin
2018-08-21T14:13:12.488-0500 I COMMAND  [conn1] command admin.system.users appName: "MongoDB Compass Community" command: saslStart { saslStart: 1, mechanism: "SCRAM-SHA-1", payload: "xxx", autoAuthorize: 1, $db: "admin" } numYields:0 ok:0 errMsg:"Authentication failed." errName:AuthenticationFailed errCode:18 reslen:133 locks:{ Global: { acquireCount: { r: 1 } }, Database: { acquireCount: { r: 1 } }, Collection: { acquireCount: { r: 1 } } } protocol:op_query 102ms
2018-08-21T14:13:12.491-0500 I NETWORK  [conn1] end connection xxx.xxx.xxx.xxx:61256 (0 connections now open)

我应该注意,当我进入“ localhost”时,命令窗口中没有任何内容。

1 个答案:

答案 0 :(得分:0)

我不确定为什么...但这可以解决问题:

根据此处的规范构建mongod.cfg:https://docs.mongodb.com/manual/reference/configuration-options/

根本不使用mongod命令行内容。...而是停止并启动了Windows服务。

现在一切正常。

我的想法是mongodb服务正在使用cfg文件中的默认值(仅绑定到127.0.0.1),而我给出的命令开关被忽略了。