+
95
-

回答

如果你忘记了 MongoDB 的用户名和密码,可以按照以下步骤重置它们。需要注意的是,这些步骤可能需要对 MongoDB 服务器有管理员权限或对服务器本身有访问权限。

方法一:使用 MongoDB 的管理工具

停止 MongoDB 服务

在 Linux 上:
sudo systemctl stop mongod
在 Windows 上,可以通过服务管理器(services.msc)停止 MongoDB 服务。

启动 MongoDB 进入无验证模式

在终端或命令提示符中输入以下命令,启动 MongoDB 不进行身份验证:
mongod --dbpath /var/lib/mongodb --bind_ip 127.0.0.1 --port 27017 --auth=false
其中 --dbpath 是你的 MongoDB 数据库路径,可能需要根据实际情况进行调整。

连接到 MongoDB

打开另一个终端或命令提示符窗口,输入以下命令连接到 MongoDB:
mongo --port 27017

修改用户名和密码

选择你要修改的数据库(例如 admin 数据库):
use admin
更新用户的密码:
db.updateUser("yourUsername", { pwd: passwordPrompt() })
或者:
db.updateUser("yourUsername", { pwd: "newPassword" })
如果你想创建一个新用户,可以使用以下命令:
db.createUser({
  user: "newUsername",
  pwd: "newPassword",
  roles: [ { role: "root", db: "admin" } ]
})

停止 MongoDB 并重新启动

停止无验证模式下的 MongoDB 实例:
sudo systemctl stop mongod
重新启动 MongoDB 服务:
sudo systemctl start mongod
方法二:通过配置文件禁用身份验证

找到 MongoDB 配置文件

通常在 /etc/mongod.conf(Linux)或 C:\Program Files\MongoDB\Server\<version>\bin\mongod.cfg(Windows)中。

编辑配置文件

找到并注释掉或移除 security.authorization 配置项,或将其设置为 disabled:
#security:
#  authorization: enabled

重启 MongoDB 服务

在 Linux 上:
sudo systemctl restart mongod
在 Windows 上,可以通过服务管理器(services.msc)重启 MongoDB 服务。

按照方法一中第 3 步和第 4 步的命令进行操作,然后恢复配置文件并重启 MongoDB 服务。

总结

重置 MongoDB 用户名和密码通常需要对服务器有管理员权限或直接访问服务器。以上两种方法提供了在忘记用户名和密码的情况下,如何禁用身份验证、重置凭据,然后恢复安全设置的步骤。请注意在实际操作中保护好你的数据库安全。

网友回复

我知道答案,我要回答