咸鱼

咸鱼是以盐腌渍后,晒干的鱼

0%

MongoDb忘记管理员密码

忘记管理员密码对于创建数据库等操作会有影响,本文基于Mongo v3.4.10将做一次处理这个问题的示例,整体方向就是删除所有的管理员用户,重新创建。

  1. 关闭mongod的认证

    1
    2
    #security:
    # authorization: enabled
  2. 重启mongod

    1
    $ service mongod restart
  3. 登录mongo命令行,删除所有admim数据库中的账号

    1
    2
    3
    4
    $ mongo
    > use admin
    > db.system.users.find()
    > db.system.users.remove({})
  4. 创建超级管理员root

    1
    > db.createUser({user:'root',pwd:'123456',roles:[{"role":"root","db":"admin"}]})
  5. 验证root密码

    1
    > db.auth('root','123456')
  6. 创建一个示例数据库:testdb

    1
    > use testdb
  7. 为示例数据库:testdb 创建一个可读写的用户

    1
    > db.createUser({user:'testuser',pwd:'123456',roles:[{"role":"readWrite","db":"testdb"}]})
  8. 认证

    1
    > db.auth('testuser','123456')
  9. 在testdb的col(collection)插入一条数据(不然不会创建数据库)

    1
    > db.col.insert({'test':'123'})
  10. 开启认证
    去掉注释,重启mongod

    1
    security:authorization: enabled
  11. 与mongo同一台机器安装adminMongo

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    $ git clone https://github.com/mrvautin/adminMongo.git
    $ cd adminMongo
    $ npm install
    $ vim /config/app.json
    {
    "app": {
    "host": "0.0.0.0",
    "port": 4321,
    "docs_per_page": 20,
    "password": "adm123",
    "locale": "en",
    "context": "dbApp",
    "monitoring": true
    }
    }
    $ npm start
  12. IP:port 访问adminMongo,密码是app.json中设置的密码

  13. adminMongo 用超级用户创建连接

    1
    mongodb://root:123456@127.0.0.1:27017
  14. 在adminMongo中试一下创建数据库,为数据库创建用户等操作,完成。