温馨提示×

centos mongodb怎样开启认证

小樊
37
2026-09-18 00:48:14
栏目: 云计算

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


一、修改 MongoDB 配置文件

MongoDB 的配置文件通常位于:

/etc/mongod.conf

编辑配置文件:

sudo vi /etc/mongod.conf

在文件中找到或添加如下内容(YAML 格式,注意缩进):

security:
  authorization: enabled

示例(常见配置):

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

二、重启 MongoDB 服务

sudo systemctl restart mongod

设置开机自启(可选):

sudo systemctl enable mongod

三、创建管理员用户(首次无认证时)

如果在未开启认证前,先连接 MongoDB:

mongo

切换到 admin 库并创建管理员:

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

退出:

exit

⚠️ 如果已经开启认证但还没用户,可临时关闭 authorization,重启后创建用户,再开启。


四、使用认证方式登录

1. 命令行登录

mongo -u admin -p --authenticationDatabase admin

或:

mongo
use admin
db.auth("admin","你的密码")

2. 连接字符串方式

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

五、为某个数据库创建普通用户(示例)

use testdb
db.createUser({
  user: "testuser",
  pwd: "testpass",
  roles: [{ role: "readWrite", db: "testdb" }]
})

六、常见问题

1. 开启认证后无法登录

  • 确认用户是在 admin 库创建的(管理员)
  • 登录时指定 authSource=admin

2. 配置文件不生效

  • 检查 YAML 缩进(不能用 Tab)
  • 查看日志:
sudo tail -f /var/log/mongodb/mongod.log

如果你用的是 MongoDB 6 / 7CentOS 7 / 8 / Stream,可以告诉我版本,我可以给你更精确的步骤。

0