温馨提示×

Debian MongoDB怎么设置密码

小樊
51
2026-08-17 09:30:12
栏目: 云计算

Debian 上给 MongoDB 设置密码,通常分为 启用鉴权(authentication)创建管理员用户 两步。下面以 MongoDB 6.x / 7.x(官方 APT 安装) 为例说明,适用于大多数 Debian 10/11/12。


一、安装 MongoDB(如已安装可跳过)

# 导入 MongoDB 公钥
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
  sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor

# 添加源(Debian 12 bookworm 示例)
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] \
https://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | \
sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

sudo apt update
sudo apt install -y mongodb-org

启动 MongoDB:

sudo systemctl start mongod
sudo systemctl enable mongod

二、先不开启鉴权,创建管理员用户

1️⃣ 进入 MongoDB Shell

mongosh

(老版本是 mongo


2️⃣ 切换到 admin 数据库

use admin

3️⃣ 创建管理员用户(最重要)

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

root 权限是 MongoDB 中最高权限

退出:

exit

三、启用 MongoDB 密码认证(关键)

1️⃣ 编辑配置文件

sudo nano /etc/mongod.conf

找到并修改:

security:
  authorization: enabled

⚠️ 注意:

  • 不要写错缩进
  • authorization 前面有两个空格

2️⃣ 重启 MongoDB

sudo systemctl restart mongod

四、使用用户名和密码登录

命令行登录方式

mongosh -u admin -p --authenticationDatabase admin

输入密码即可。


或使用 URI 方式

mongosh "mongodb://admin:StrongAdminPassword@localhost:27017/?authSource=admin"

五、给某个数据库单独设置用户(推荐)

例如给 mydb 数据库创建用户:

use mydb

db.createUser({
  user: "myuser",
  pwd: "MyUserPassword",
  roles: [ { role: "readWrite", db: "mydb" } ]
})

登录:

mongosh -u myuser -p --authenticationDatabase mydb

六、常见角色说明

角色 说明
root 超级管理员
readWrite 读写
read 只读
dbAdmin 数据库管理
userAdmin 用户管理

七、忘记密码怎么办?

  1. 停止 MongoDB
  2. 注释掉 authorization
  3. 重启
  4. 修改用户密码:
use admin
db.changeUserPassword("admin", "NewPassword")
  1. 重新开启 authorization

八、Debian 防火墙建议

sudo ufw allow from 你的IP to any port 27017

生产环境 不要 直接暴露 27017 到公网。


如果你愿意,可以告诉我:

  • MongoDB 版本
  • 是否是 Docker / 本机 / 云服务器
  • 是否 生产环境

我可以给你更精确的配置方案 ✅

0