搜了很多教程,花了一个下午的时间,幸好最终搞出来了
首先是有两种说法,其中一种说要自己添加配置文件,其实是不用的,我采取的另一种方法,直接在cmd中开启认证就行了
第一步,先为自己创建一个最高权限的身份(是不是莫名的很爽,老子有最高权限!!!!),如果不执行这一步,你直接开启认证,你也没有权限来操作他了
use admin
db.createUser(
{
user: "trouble i am in",
pwd: "trouble i am in",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" }
]
}
)
上面的用户名和密码是我乱编的,还有一些教程说使用 addUser 的,那是很久以前的版本了,我的版本是 3,2,3,所以是使用 createUser的,而且现在创建成功不表示一定创建成功了,在认证的时候如果你这里出错,admin中数据是存在,但是认证是失败的
第二步,在 cmd 中重新配置 mongodb,前面安装 mongodb 的时候在 cmd 中输入过一下内容,记得先关闭 mongodb的服务 net stop mongodb
mongod.exe
--bind_ip 127.0.0.1
--logpath "C:\Program Files\MongoDB\data\log\mongodb.log" --logappend
--dbpath "C:\Program Files\MongoDB\data\db"
--port 27017
--serviceName "localhost"
--serviceDisplayName "mongodb"
--install
只要修改两个地方:
mongod.exe
--auth
--bind_ip 127.0.0.1
--logpath "C:\Program Files\MongoDB\data\log\mongodb.log" --logappend
--dbpath "C:\Program Files\MongoDB\data\db"
--port 27017
--serviceName "localhost"
--serviceDisplayName "mongodb"
--reinstall
其中 --auth表示开启认证,--reinstall 表示重新载入,之后重新开启 mongodb就开启权限验证了,这个时候发现你未登录之前,连 show dbs的能力都没有,要想有权限,使用前面设置的用户名和密码进行登录
use admin
db.auth("trouble i am in","trouble i am in")
这样就行了,下面载附加一个我遇见的差点吓死我的情况,我的 admin 数据库不见了。。。。。。。。。。而且我使用 use admin 也没有办法创建 admin,使用 show dbs,也查询不到 admin,当时整个人蒙掉了,重装了两遍,还是没有 admin 数据库,最后搜到一哥们遇到的同样 的情况,他的回答是使用 use admin重建,那我就再狠一点,直接在查不到 admin的情况下创建用户
use admin
db.createUser(
{
user: "trouble i am in",
pwd: "trouble i am in",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" }
]
}
)
之后我发现成功了,admin又回来了!!!当时那个失而复得的心情啊