温馨提示×

linux mongodb配置怎样开启认证

小樊
36
2026-10-28 05:04:47
栏目: 云计算

在 Linux 上配置 MongoDB 开启认证(Authentication),通常步骤如下(以 MongoDB 4.x / 5.x / 6.x 为例,使用 mongod.conf):


一、修改 MongoDB 配置文件

MongoDB 的配置文件一般位于:

/etc/mongod.conf

编辑该文件:

sudo vi /etc/mongod.conf

1. 开启认证

在配置文件中加入或修改:

security:
  authorization: enabled

(如果是旧版本,也支持 authorization: "enabled")

2. (可选)绑定 IP(视需求)

net:
  bindIp: 127.0.0.1,你的服务器IP
  port: 27017

二、创建管理员用户(重要)

在开启认证前或后都可以,但首次必须创建用户

1. 先以无认证方式启动(若已开启认证,用本地Shell)

mongo

或(新版本)

mongosh

2. 切换到 admin 库

use admin

3. 创建超级管理员

db.createUser({
  user: "admin",
  pwd: "你的密码",
  roles: [{ role: "root", db: "admin" }]
})

三、重启 MongoDB 使认证生效

sudo systemctl restart mongod

或

sudo service mongod restart

四、使用账号登录 MongoDB

命令行登录

mongo -u admin -p --authenticationDatabase admin

或

mongosh -u admin -p --authenticationDatabase admin

连接字符串方式

mongodb://admin:密码@127.0.0.1:27017/?authSource=admin

五、为业务数据库创建专用用户(推荐)

use mydb
db.createUser({
  user: "appuser",
  pwd: "apppass",
  roles: [{ role: "readWrite", db: "mydb" }]
})

连接:

mongodb://appuser:apppass@127.0.0.1:27017/mydb

六、常见问题

1. 开启认证后无法登录

  • 确认是否在 admin 库创建了用户
  • 登录时是否指定 --authenticationDatabase admin

2. 忘记管理员密码

  • 临时注释 authorization: enabled
  • 重启 MongoDB
  • 用 mongo 本地登录后修改密码

3. 配置文件格式错误

  • YAML 对缩进敏感(2 空格)
  • 修改后可用:
mongod --config /etc/mongod.conf --validate

如果你用的是 Docker / Ubuntu / CentOS / MongoDB 7,可以告诉我,我可以给你对应版本的配置示例。

0 踩