一、系统环境说明

适配 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

     

    MongoDB 允许 root 管理员登录完整配置

    前置说明

    MongoDB 默认无账号,开启权限认证后,必须用管理员账号才能操作库;下面分两步:创建 root 超级账号 + 开启认证 + root 登录方式

    1. 先关闭认证,临时无密码进入 mongosh

    如果已经修改过mongod.conf开启了 authorization,先注释掉配置重启:
    sudo nano /etc/mongod.conf 
    注释这两行:
    yaml
    #security:
    #  authorization: enabled
    保存退出,重启 Mongo:
    sudo systemctl restart mongod
    mongosh

    2. 创建 root 超级管理员(全局最高权限)

    进入 mongosh 执行:
    js
     
    运行
    // 切换到admin库,管理员账号必须存在admin库
    use admin
    
    // 创建root用户,拥有root全局权限
    db.createUser({
      user: "root",
      pwd: "你的高强度密码123!Abc", // 自行修改密码
      roles: ["root"] // root权限:操作所有数据库、管理用户、集群
    })
    
     
    创建完成后输入 exit 退出命令行。

    3. 开启身份认证,强制必须账号密码登录

    编辑配置文件:
    sudo nano /etc/mongod.conf
    取消 security 注释,启用认证:
    yaml
    security:
      authorization: enabled
    
     
    保存(Ctrl+O 回车)退出(Ctrl+X),重启服务生效:
    sudo systemctl restart mongod

    4. root 账号登录的 3 种方式

    方式 1:命令行直接携带账号密码(推荐)

    mongosh -u root -p --authenticationDatabase admin 
    执行后输入你设置的 root 密码即可登录。

    方式 2:先进入 mongosh,再手动认证

    mongosh
    # 进入后执行认证
    use admin
    db.auth("root","你的高强度密码123!Abc")
    
     
    返回1代表认证成功,0密码错误。

    方式 3:连接远程 MongoDB(外网 root 登录)

    mongosh 服务器IP:27017 -u root -p --authenticationDatabase admin

    5. 配套外网访问配置(远程 root 登录必备)

    5.1 放开监听所有 IP

    编辑 /etc/mongod.conf,修改网络绑定:
    yaml
    net:
      port: 27017
      bindIp: 0.0.0.0  # 原来127.0.0.1,改为0.0.0.0允许所有IP连接
    
     
    重启 Mongo:
    sudo systemctl restart mongod 

    5.2 防火墙放行 27017 端口

     
    sudo ufw allow 27017/tcp
    
     云服务器(阿里云 / 腾讯云)额外需要在控制台安全组放行 27017 端口,否则外网无法连接 root 账号。

    6. 常用 root 管理员操作示例

    登录 root 后管理其他数据库 / 用户:
    js
     
    运行
    // 查看所有用户
    use admin
    db.getUsers()
    
    // 修改root密码
    db.updateUser("root",{pwd:"新密码123!Abc"})
    
    // 创建普通业务库用户
    use testdb
    db.createUser({
      user:"testuser",
      pwd:"test123",
      roles:["readWrite"]
    }) 

    常见报错解决

    1. 登录报错 Authentication failed
      • 账号密码输错;
      • 登录未加 --authenticationDatabase admin
    2. 远程连不上 root
      • bindIp 未改为 0.0.0.0;
      • 防火墙 / 云服务器安全组未开放 27017;
    3. 创建用户报错 Command createUser requires authentication
       
      说明已经开启认证,需要先临时注释 security 配置重启 Mongo,再创建 root 用户。

     

     

     

posted on 2026-07-26 02:49  阿平_哥  阅读(2)  评论(0)    收藏  举报