MongoDB忘记管理员密码解决方法

  1. 关闭Mongodb进程

    ps -ef #查看mongodb进程
    kill (pid)
  2. 非auth验证方法启动mongo

    mongod --dbpath "/root/db/" --logpath "/root/db/log" -logappend --fork
    #dbpath和logpath替换成自己的目录
  3. 进入admin的数据库

    use admin
    db.users.find({})
    db.users.remove({user:"user"})
    #重新创建用户
    db.createUser({user: "用户名",pwd: "密码",roles:[{ role:"userAdminAnyDatabase",db:"admin"}] });
    #认证方法db.auth("用户名","密码")
    db.updateUser("用户名", {
    roles: [{
    "role": "userAdminAnyDatabase",
    "db": "admin"
    },
    {
    "role": "dbOwner",
    "db": "admin"
    },
    {
    "role": "clusterAdmin",
    "db": "admin"
    }]
    })

    关闭mongodb

    db.shutdownServer() 
  4. 以auth方式启动mongo

    /mongodb/bin/mongod --fork --dbpath "/root/db/" --logpath "/root/db/log" --bind_ip_all --port 12345