我已经在AWS ec2服务器上安装了mongodb 3.6.5,并在.conf文件中进行了以下设置
net:
port: 27017
bindIp: serverIP
security:
authorization: 'enabled'
然后在admin db中使用以下命令创建用户并重新启动mongodb
db.createUser(
{
user: "mydbuser",
pwd: "mydbpass",
roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
}
)
现在,当我尝试使用以下命令从控制台访问数据库时,如果不允许我进行操作,并给我带来身份验证错误。
mongo serverIP --port 27017 -u "mydbuser" -p "mydbpass" --authenticationDatabase "admin"
有人可以帮我解决一下问题吗
出现以下错误
MongoDB server version: 3.6.5
2019-01-11T08:46:50.245+0000 E QUERY [thread1] Error: Authentication failed. :
DB.prototype._authOrThrow@src/mongo/shell/db.js:1608:20
@(auth):6:1
@(auth):1:2
exception: login failed
答案 0 :(得分:0)
您遵循的方法是正确的,但是在接受凭据作为字符串时,mongodb会有一些变化。您可能需要将用户名和密码用单引号引起来,而不是用双引号引起来,如下所示。
mongo serverIP --port 27017 -u 'mydbuser' -p 'mydbpass' --authenticationDatabase 'admin'
如果您的用户名/密码中没有特殊字符,则双引号将起作用。
有关mongo的更多详细信息,请点击此处https://docs.mongodb.com/manual/reference/program/mongo/