在 CentOS 上给 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
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,重启后创建用户,再开启。
mongo -u admin -p --authenticationDatabase admin
或:
mongo
use admin
db.auth("admin","你的密码")
mongodb://admin:密码@127.0.0.1:27017/?authSource=admin
use testdb
db.createUser({
user: "testuser",
pwd: "testpass",
roles: [{ role: "readWrite", db: "testdb" }]
})
admin 库创建的(管理员)authSource=adminsudo tail -f /var/log/mongodb/mongod.log
如果你用的是 MongoDB 6 / 7 或 CentOS 7 / 8 / Stream,可以告诉我版本,我可以给你更精确的步骤。