我有一个新的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”时,命令窗口中没有任何内容。
答案 0 :(得分:0)
我不确定为什么...但这可以解决问题:
根据此处的规范构建mongod.cfg:https://docs.mongodb.com/manual/reference/configuration-options/
根本不使用mongod命令行内容。...而是停止并启动了Windows服务。
现在一切正常。
我的想法是mongodb服务正在使用cfg文件中的默认值(仅绑定到127.0.0.1),而我给出的命令开关被忽略了。