温馨提示×

MongoDB如何连Debian

小樊
41
2026-07-07 01:39:56
栏目: 云计算

下面分几种常见场景,说明 MongoDB 在 Debian 上的连接方式(包括本地连接和远程连接)。


一、在 Debian 上安装 MongoDB(先确认环境)

Debian 12(bookworm)官方仓库方式(推荐)

Debian 12 起官方仓库已包含 MongoDB 相关包(通常是 mongodb-orgmongodb 的替代包)。

sudo apt update
sudo apt install -y mongodb

启动并设置开机自启:

sudo systemctl start mongodb
sudo systemctl enable mongodb

检查状态:

sudo systemctl status mongodb

使用 MongoDB 官方源(推荐,版本更新)

适用于 Debian 11 / 12。

sudo apt update
sudo apt install -y curl gnupg

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

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

sudo apt update
sudo apt install -y mongodb-org

启动:

sudo systemctl start mongod
sudo systemctl enable mongod

二、本地连接 MongoDB(最常见)

1️⃣ 使用 mongo shell(旧版本)

mongo

2️⃣ 使用 mongosh(新版,推荐)

mongosh

成功后会看到:

test>

三、远程连接 MongoDB(从其他机器)

1️⃣ 修改 MongoDB 配置

编辑配置文件:

sudo nano /etc/mongod.conf

修改 bindIp

net:
  port: 27017
  bindIp: 0.0.0.0   # 允许远程访问(生产环境不推荐)

⚠️ 生产环境建议只绑定内网 IP,而不是 0.0.0.0

重启服务:

sudo systemctl restart mongod

2️⃣ 开放防火墙端口(如有)

sudo ufw allow 27017

3️⃣ 远程连接示例

mongosh "mongodb://用户名:密码@服务器IP:27017/数据库名"

或:

mongosh --host 192.168.1.100 --port 27017

四、启用用户名密码认证(强烈推荐)

1️⃣ 创建管理员用户

进入 mongo shell:

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

2️⃣ 开启认证

编辑配置:

sudo nano /etc/mongod.conf

添加:

security:
  authorization: enabled

重启:

sudo systemctl restart mongod

3️⃣ 使用账号连接

mongosh -u admin -p --authenticationDatabase admin

五、程序连接示例

Node.js

mongoose.connect('mongodb://admin:password@localhost:27017/test?authSource=admin');

Python

from pymongo import MongoClient

client = MongoClient("mongodb://admin:password@localhost:27017/?authSource=admin")

六、常见问题排查

1️⃣ 连接被拒绝

connect ECONNREFUSED

✅ 检查:

  • mongod 是否运行
  • 端口是否开放
  • bindIp 是否正确

2️⃣ 认证失败

Authentication failed

✅ 检查:

  • 用户是否存在
  • authSource 是否正确

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

  • ✅ Debian 版本(11 / 12)
  • ✅ 本地还是远程连接
  • ✅ 是否需要用户名密码

我可以给你 精确到命令级别 的操作方案。

0