温馨提示×

centos mongodb如何开认证

小樊
48
2026-09-02 20:08:17
栏目: 云计算

CentOS 上给 MongoDB 开启认证(用户名密码登录),一般步骤如下:


一、修改 MongoDB 配置文件

MongoDB 的配置文件通常是:

/etc/mongod.conf

编辑它:

vi /etc/mongod.conf

在文件中添加或确认以下内容:

security:
  authorization: enabled

注意:yaml 格式严格,缩进必须是空格,不能是 Tab

示例完整片段:

storage:
  dbPath: /var/lib/mongo
  journal:
    enabled: true

systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

net:
  port: 27017
  bindIp: 127.0.0.1

security:
  authorization: enabled

二、创建管理员用户(关键步骤)

在开启认证前或刚开启后,必须有一个管理员账号

1️⃣ 先不开启认证时登录

如果你还没开认证:

mongo

2️⃣ 切换到 admin 库并创建管理员

use admin

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

三、重启 MongoDB

systemctl restart mongod

或(老版本):

service mongod restart

四、使用账号登录测试

方式一:命令行登录

mongo -u admin -p YourStrongPassword --authenticationDatabase admin

方式二:登录后认证

mongo
use admin
db.auth("admin","YourStrongPassword")

五、给业务库创建普通用户(推荐)

use mydb

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

连接:

mongo -u appuser -p AppPassword --authenticationDatabase mydb

六、防火墙 & 安全建议

  • 不要直接暴露 27017 到公网
  • 建议使用 bindIp: 127.0.0.1 或内网 IP
  • 必要时用 SSH 隧道 / 防火墙

七、常见问题

❌ 开启认证后无法登录

  • 没创建管理员用户
  • authenticationDatabase 用错

❌ 配置文件报错

  • 检查 YAML 缩进
  • 查看日志:
tail -n 50 /var/log/mongodb/mongod.log

如果你告诉我:

  • MongoDB 版本(4.x / 5.x / 6.x)
  • 是否用 yum 安装
  • 是否 Docker

我可以给你更精确的操作命令

0