mongo集群误删admin如何恢复

把认证关闭, 然后新建admin,新建用户,就可以了,前提你知道每个库的 用户不然只能 新建用户了....
MongoDB集群认证,有下面三步:
(1)生成密钥文件,复制到其他两台服务器上.并修改权限   

            openssl rand -base64 741 > /usr/replSet_key

           chmod 700 /usr/replSet_key
           在一台生成keyfile,将密码文件scp到其他两台服务器上。

(2)创建用户,在集群的一台服务器上创建会同步到另两个服务器上,
        举两个创建用户例子:
       db.createUser({user:"root", pwd:"123456",roles:[{role:"root",db:"admin"}]});
       db.createUser({user:'yunwei',pwd:'123456', roles:[{role:'readWriteAnyDatabase', db:'admin'}]});
       #创建管理用户
       db.system.users.find()    //查看创建的用户
       db.auth("root","123456")//授权
            
        #创建testdb读写用户(需要切换到对应的数据库下给它创建用户)
       use testdb
      db.createUser({user:'dev',pwd:'123456', roles:[{role:'readWrite', db:'testdb''}]});

(3)打开配置文件的注释,开启认证
        修改所有下面的配置文件,

        config.conf  shard1.conf  shard2.conf  shard3.conf mongos.conf (keyFile=/usr  这个只需要配置keyFile的位置)

        auth=true

        keyFile=你第一步生成的文件的位置

 

重启,集群认证就可以生效!!!
误删admin后,只需要把第三部的配置文件中auth= false即可,
然后重启mongo集群,新建用户后,重新打开认证,即可以恢复! 修改文件必须重启,不然配置文件不生效!
 
posted @ 2025-06-17 01:03  屠魔的少年  阅读(27)  评论(0)    收藏  举报