Ubuntu 安装 MongoDB 完整教程

一、系统环境说明

适配 Ubuntu 20.04 (Focal) / 22.04 (Jammy) / 24.04 (Noble)

1. 更新系统依赖

sudo apt update && sudo apt upgrade -y 

2. 安装前置依赖

sudo apt install gnupg curl -y 

3. 导入 MongoDB 官方 GPG 密钥

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

4. 添加 MongoDB 软件源

Ubuntu 22.04 / 24.04 

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list 

Ubuntu 20.04

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list 

5. 刷新软件源并安装

sudo apt update
# 安装完整服务端
sudo apt install mongodb-org -y 

6. 启停 / 开机自启命令

# 启动
sudo systemctl start mongod
# 开机自启
sudo systemctl enable mongod
# 查看运行状态
sudo systemctl status mongod
# 重启
sudo systemctl restart mongod
# 停止
sudo systemctl stop mongod 

7. 进入 Mongo 命令行

mongosh 

基础安全配置(必做,否则外网可随意连接)

步骤 1:创建管理员账号

进入 mongosh 执行:
use admin
db.createUser({user: "root",pwd: "自定义强密码",roles: ["root"]
})
exit

步骤 2:修改配置文件开启身份验证

 sudo nano /etc/mongod.conf
 
找到 #security: 注释,修改为:
yaml
security:authorization: enabled 
保存退出:Ctrl+O → 回车 → Ctrl+X
重启服务生效:
sudo systemctl restart mongod 

步骤 3:带密码登录

mongosh -u root -p --authenticationDatabase admin 

允许外网访问(服务器开发常用)

  1. 修改配置文件
sudo nano /etc/mongod.conf 
bindIp: 127.0.0.1 改为
yaml 
bindIp: 0.0.0.0
  1. 重启服务
sudo systemctl restart mongod
  1. 放行防火墙 27017 端口
# ufw防火墙
sudo ufw allow 27017/tcp
# 云服务器额外需要在后台安全组放行27017端口

常用卸载命令(需要重装时)

sudo systemctl stop mongod
sudo apt remove mongodb-org* -y
sudo apt autoremove -y
# 删除数据(谨慎!会清空所有数据库)
sudo rm -rf /var/lib/mongodb
sudo rm -rf /etc/mongod.conf
 常见问题
  1. mongod 启动失败
    • 检查磁盘权限:sudo chown -R mongodb:mongodb /var/lib/mongodb
    • 查看日志:tail -f /var/log/mongodb/mongod.log
  2. 连接超时
    • 确认 bindIp 0.0.0.0
    • 防火墙 / 云服务器安全组放行 27017
  3. 登录提示认证失败
    • 登录命令必须携带 --authenticationDatabase admin