温馨提示×

MongoDB在Debian怎么配

小樊
39
2026-08-28 14:54:10
栏目: 云计算

下面给你一个在 Debian(10/11/12 通用)上安装并配置 MongoDB 的完整流程,这是目前官方推荐方式,适用于大多数生产或开发环境。


一、添加 MongoDB 官方源(推荐)

MongoDB 不在 Debian 默认仓库里,需要用官方源。

1️⃣ 安装依赖

sudo apt update
sudo apt install -y curl gnupg

2️⃣ 导入 MongoDB GPG 密钥

curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-7.0.gpg

如果你想装 6.0,把 7.0 改成 6.0 即可。

3️⃣ 添加 MongoDB APT 源

echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] \
https://repo.mongodb.org/apt/debian $(lsb_release -cs)/mongodb-org/7.0 main" | \
sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

如果你是 Debian 12 (Bookworm),但官方未直接支持,可用:

deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] \
https://repo.mongodb.org/apt/debian bullseye/mongodb-org/7.0 main

二、安装 MongoDB

sudo apt update
sudo apt install -y mongodb-org

安装完成后检查版本:

mongod --version

三、启动并设置开机自启

sudo systemctl start mongod
sudo systemctl enable mongod

查看状态:

sudo systemctl status mongod

看到 active (running) 就说明 OK。


四、基本配置(重点)

配置文件路径:

/etc/mongod.conf

常用配置项说明

# 监听地址(默认只监听 127.0.0.1)
net:
  port: 27017
  bindIp: 127.0.0.1

# 数据目录
storage:
  dbPath: /var/lib/mongodb

# 日志
systemLog:
  destination: file
  path: /var/log/mongodb/mongod.log

允许远程访问(⚠️注意安全)

bindIp: 0.0.0.0

修改后重启:

sudo systemctl restart mongod

五、设置管理员用户(推荐)

1️⃣ 进入 MongoDB

mongosh

2️⃣ 创建管理员

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

3️⃣ 启用认证

编辑 /etc/mongod.conf

security:
  authorization: enabled

重启:

sudo systemctl restart mongod

4️⃣ 登录

mongosh -u admin -p --authenticationDatabase admin

六、防火墙(如有)

sudo ufw allow 27017

⚠️ 生产环境强烈建议:

  • 不要直接暴露 27017
  • 使用 SSH / 内网 / 白名单

七、目录权限(常见问题)

sudo chown -R mongodb:mongodb /var/lib/mongodb
sudo chown -R mongodb:mongodb /var/log/mongodb

八、卸载(如需)

sudo systemctl stop mongod
sudo apt purge mongodb-org*
sudo rm -r /var/lib/mongodb
sudo rm -r /var/log/mongodb

常见坑 ✅

问题 解决
启动失败 /var/log/mongodb/mongod.log
连接被拒绝 bindIpauthorization
Debian 12 没对应版本 bullseye

如果你愿意,可以告诉我:

  • Debian 版本(10/11/12)
  • MongoDB 用途(开发 / 生产 / Docker)
  • 是否需要副本集 / 认证 / 远程访问

我可以帮你给出更精确的配置方案

0