一、系统环境说明
适配 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
允许外网访问(服务器开发常用)
- 修改配置文件
sudo nano /etc/mongod.conf
将
bindIp: 127.0.0.1 改为yaml
bindIp: 0.0.0.0
- 重启服务
sudo systemctl restart mongod
- 放行防火墙 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
常见问题
- mongod 启动失败
- 检查磁盘权限:
sudo chown -R mongodb:mongodb /var/lib/mongodb - 查看日志:
tail -f /var/log/mongodb/mongod.log
- 检查磁盘权限:
- 连接超时
- 确认 bindIp 0.0.0.0
- 防火墙 / 云服务器安全组放行 27017
- 登录提示认证失败
- 登录命令必须携带
--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 mongosh2. 创建 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 注释,启用认证:yamlsecurity: authorization: enabled保存(Ctrl+O 回车)退出(Ctrl+X),重启服务生效:sudo systemctl restart mongod4. 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 admin5. 配套外网访问配置(远程 root 登录必备)
5.1 放开监听所有 IP
编辑/etc/mongod.conf,修改网络绑定:yamlnet: port: 27017 bindIp: 0.0.0.0 # 原来127.0.0.1,改为0.0.0.0允许所有IP连接重启 Mongo:sudo systemctl restart mongod5.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"] })常见报错解决
- 登录报错 Authentication failed
- 账号密码输错;
- 登录未加
--authenticationDatabase admin;
- 远程连不上 root
- bindIp 未改为 0.0.0.0;
- 防火墙 / 云服务器安全组未开放 27017;
- 创建用户报错 Command createUser requires authentication
说明已经开启认证,需要先临时注释 security 配置重启 Mongo,再创建 root 用户。
- 登录命令必须携带
浙公网安备 33010602011771号