温馨提示×

怎么部署Debian的MongoDB

小樊
44
2026-07-18 09:57:44
栏目: 云计算

Debian 上部署 MongoDB,推荐使用 官方仓库,而不是 Debian 自带的老旧版本。下面按 Debian 11 / 12 给你一个完整、可用的部署步骤


一、前置说明

  • MongoDB 版本:7.0(当前稳定版)
  • 适用系统:Debian 11 (Bullseye) / Debian 12 (Bookworm)
  • 示例用户:root 或 sudo 用户

二、导入 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

三、添加 MongoDB APT 仓库

Debian 12(Bookworm)

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

Debian 11(Bullseye)

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

四、安装 MongoDB

sudo apt update
sudo apt install -y mongodb-org

安装完成后,可执行文件包括:

  • mongod(服务端)
  • mongosh(新版 Shell)

五、启动并设置开机自启

sudo systemctl enable mongod
sudo systemctl start mongod

检查状态

sudo systemctl status mongod

六、验证 MongoDB 是否正常运行

mongosh

成功后会看到:

test>

退出:

exit

七、基本配置(可选但推荐)

配置文件位置

/etc/mongod.conf

常见配置示例

net:
  port: 27017
  bindIp: 127.0.0.1

storage:
  dbPath: /var/lib/mongodb

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

修改后重启:

sudo systemctl restart mongod

八、开启远程访问(谨慎)

⚠️ 生产环境不建议直接暴露

  1. 修改 mongod.conf
bindIp: 0.0.0.0
  1. 重启
sudo systemctl restart mongod
  1. 防火墙放行
sudo ufw allow 27017

九、创建管理员用户(推荐)

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

然后启用认证:

security:
  authorization: enabled

重启 MongoDB。


十、常见排错

1️⃣ 启动失败

journalctl -u mongod -xe

2️⃣ 权限问题

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

十一、卸载 MongoDB(如需要)

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

如果你需要:

  • 生产环境安全配置
  • 副本集 / 分片
  • Docker 部署
  • Debian + MongoDB + Node / Python

可以直接告诉我你的使用场景。

0