MongoDB误删了admin库怎么办?

导读

自接触MongoDB以来,已经不止一次处理admin库删除的事件了,那么在发生admin库被删除以后如何快速处理呢?

快速处理

1. 修改 Config 节点配置,关闭认证功能,并创建账号

•停掉所有的 Config 节点,修改配置文件

# 老版本配置文件修改 noauth=true,并且注释掉以下内容
# keyfile=xxxxxx

# 新版yaml配置文件注释掉以下内容
# security:
#    authorization: enabled
#    clusterAuthMode: keyFile
#    keyFile: /home/ocean/conf/mongodb/keyfile

•连接 Config 节点的 Primary,并创建账号(账号从rs.pw或者db平台获取)

use admin
db.createUser(
  {
    user: "xxxx",
    pwd: "xxxxx",
    roles: [ { role: "root", db: "admin" } ]
  }
)

2. 在各个分片上创建账号

•部分版本(3.4.x)的MongoDB admin删库后会把分片上的root账户也删掉,需要确认一下,没有就创建•停掉该分片中的所有 mongod 节点,修改配置文件

# 老版本配置文件修改 noauth=true,并注释掉以下内容
# keyfile=xxxxxx
# shardsvr=true

# 新版yaml配置文件注释掉以下内容
# security:
#    authorization: enabled
#    clusterAuthMode: keyFile
#    keyFile: /home/ocean/conf/mongodb/keyfile

# sharding:
#    clusterRole: shardsvr

•连接该分片的 Primary,并创建账号

•对每个分片逐一执行该操作

use admin
db.createUser(
  {
    user: "root",
    pwd: "xxx",
    roles: [ { role: "root", db: "admin" } ]
  }
)

3. 确认每个分片连接认证正常

4. 确认通过mongos连接认证正常

发表评论

登录后才能评论
网站客服
网站客服
申请收录 侵权处理
分享本页
返回顶部