重置 mongodb 根 密码

busg9geu  于 2022-11-22  发布在  Go
关注(0)|答案(1)|浏览(219)

我忘记了我的mongodb root用户密码,我已经经历了同样的堆栈溢出问题,但由于不同的配置无法复制。下面是我的配置

  1. mongodb版本4.4.
    1.使用密钥文件身份验证在3个服务器(节点)上进行复制。
    1.所有节点都在Docker容器中运行。
    在有用的情况下,我有其他凭据是通过root用户创建的备份和读写权限,但他们没有访问管理数据库。
    如果你有什么解决办法,请告诉我。谢谢
    找不到任何可尝试的方法
lc8prwob

lc8prwob1#

官方 的 做法 是 :
未经 授权 重启 MongoDB , 即 mongod --noauth ... 或 通过 配置 文件 重启

security:
   authorization: disabled

中 的 每 一 个
然后 , 您 可以 在 没有 密码 的 情况 下 登录 , 并 更改 root 用户 的 凭据 。

    • 注意 事项 * * :当 MongoDB 在 没有 授权 的 情况 下 运行 时 , * * 每个 * * 用户 都 以 root 权限 连接 , 因此 您 最 好 在 维护 模式 下 重新 启动 MongoDB , 即
net:
   bindIp: localhost
   port: 55555

#replication:
#   replSetName: shardA

#sharding:
#   clusterRole: shardsvr

setParameter:
   skipShardingConfigurationChecks: true
   disableLogicalSessionCacheRefresh: true

格式
然后 , 您 只能 使用 端口 55555 从 localhost 进行 连接 ( 其他 集群 成员 不 配置 该 端口 , 其他 用户 也 不 知道 该 端口 )
您 只 需要 在 配置 服务 器 上 执行 此 操作 , 因为 用户 帐户 存储 在 那里 , 而 不是 存储 在 shard 或 mongos 成员 上 。
但是 , 有 一 种 更 简单 的 方法 可以 实现 相同 的 目的 , 即 使用 密钥 文件 进行 身份 验证 :

mongosh --authenticationDatabase local -u __system -p "$(tr -d '\011-\015\040' < /path/to/keyfile)"

格式

相关问题