温馨提示×

linux mongodb怎样配置认证

小樊
48
2026-10-16 03:28:25
栏目: 云计算

在 Linux 上配置 MongoDB 认证(用户名/密码登录),一般步骤如下(以 MongoDB 4.x / 5.x / 6.x 为例,使用 mongod 服务方式):


一、修改 MongoDB 配置文件

MongoDB 配置文件通常位于:

/etc/mongod.conf

编辑配置文件:

sudo vi /etc/mongod.conf

在 security 部分启用认证:

security:
  authorization: enabled

如果是 YAML 格式,注意缩进(2 个空格)

示例完整片段:

net:
  port: 27017
  bindIp: 127.0.0.1

security:
  authorization: enabled

二、重启 MongoDB 服务

sudo systemctl restart mongod

查看状态:

sudo systemctl status mongod

三、先以无认证方式创建管理员用户(重要)

如果 还没启用过认证,请先按下面操作:

1. 临时关闭认证(如果已开启)

注释掉:

# authorization: enabled

然后重启:

sudo systemctl restart mongod

2. 连接 MongoDB

mongo

或(新版本)

mongosh

3. 创建管理员用户

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

四、启用认证并重新登录

  1. 取消注释:
security:
  authorization: enabled
  1. 重启 MongoDB:
sudo systemctl restart mongod
  1. 使用账号登录:
mongo -u admin -p --authenticationDatabase admin

或:

mongosh -u admin -p --authenticationDatabase admin

五、为某个数据库创建普通用户

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

登录方式:

mongo -u appuser -p --authenticationDatabase mydb

六、连接字符串示例

mongodb://appuser:AppPassword@localhost:27017/mydb

七、常见问题

1. 忘记管理员密码

  • 停服
  • 注释 authorization
  • 重启
  • 修改密码:
use admin
db.changeUserPassword("admin", "NewPassword")

2. 远程连接

修改:

bindIp: 0.0.0.0

并配置防火墙 / 安全组


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

0 踩