当为mongod启用auth时,无法访问http:// localhost:28017

时间:2015-06-26 08:50:04

标签: mongodb http console

mongod启用身份验证后,我无法访问http://localhost:28017;即使我填写了正确的用户名/密码,它也会弹出用户名/密码。我启用了HTTP& REST在初始参数文件中。

我使用的YAML格式参数文件:

net:
port: 27017
http:
 enabled: true
 RESTInterfaceEnabled: true
 security:
 authorization: enabled

但是当我禁用mongod授权时,我可以成功登录http://localhost:28017,无需填写用户名/密码。

原因是什么?它是否在3.0的授权下不支持HTTP控制台?我的版本是3.0.2。

2 个答案:

答案 0 :(得分:2)

首先让我添加标准警告 - 不要在生产中使用内置的HTTP / REST接口,仅用于测试,应该在生产系统上禁用它。

关于问题:MongoDB 3.0现在defaults使用SCRAM-SHA-1进行基于登录的质询响应(用户名和密码),我假设您在3.0中从头开始创建用户(如果它们是导入的从2.6开始,除非你进行了模式升级,否则它们会工作。您失败的原因是HTTP / REST接口does not support使用3.0中的新凭据机制登录,您必须使用旧机制。

基本上,如果要使用经过身份验证的REST接口,则需要拥有旧MONGODB-CR凭据的用户。创建您要使用的用户,然后使用changeUserPassword命令切换到MONGODB-CR机制。如下所示:

db.changeUserPassword("restuser", "SOh3TbYhx8ypJPxm", "MONGODB-CR")

答案 1 :(得分:0)

最好使用“ MongoDB罗盘社区”,从mongodb网站下载,就像mysql的phpmyadmin一样。