Linux如何安装MongoDB数据库_Linux环境配置与用户权限设置【教程】
技术百科
穿越時空
发布时间:2025-12-29
浏览: 次 需按五步完成MongoDB安装与安全配置:一、用包管理器或二进制包安装;二、配置systemd服务并启用开机自启;三、创建admin用户并启用authorization;四、创建应用专属数据库及readWrite权限用户;五、确保服务运行正常且权限隔离。
如果您需要在Linux系统中安装MongoDB数据库并完成
基本的环境配置与用户权限设置,则需按照特定步骤执行安装、服务初始化及安全访问控制。以下是具体操作流程:
一、使用包管理器安装MongoDB
该方法适用于Ubuntu/Debian或CentOS/RHEL等主流发行版,通过官方仓库安装可确保版本兼容性与安全性更新支持。
1、导入MongoDB官方GPG密钥:
执行命令 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 68818C72E52529D4(Ubuntu/Debian)或 sudo rpm --import https://www.mongodb.org/static/pgp/server-6.0.asc(CentOS/RHEL)。
2、添加MongoDB官方源到系统软件源列表:
Ubuntu/Debian执行 echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -sc)/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list;
CentOS/RHEL执行 echo "[mongodb-org-6.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc" | sudo tee /etc/yum.repos.d/mongodb-org-6.0.repo。
3、更新本地包索引并安装MongoDB:
Ubuntu/Debian执行 sudo apt-get update && sudo apt-get install -y mongodb-org;
CentOS/RHEL执行 sudo yum install -y mongodb-org。
二、手动下载并解压二进制包安装
该方式适用于无网络仓库访问权限、需指定版本或部署于定制化环境的场景,不依赖系统包管理器。
1、进入MongoDB下载页面获取对应架构的tar.gz包链接,使用wget下载:
执行 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2204-6.0.13.tgz(以Ubuntu 22.04为例)。
2、创建安装目录并解压:
执行 sudo mkdir -p /opt/mongodb && sudo tar -zxvf mongodb-linux-x86_64-ubuntu2204-6.0.13.tgz -C /opt/mongodb --strip-components=1。
3、创建数据目录与日志目录,并赋予权限:
执行 sudo mkdir -p /var/lib/mongo /var/log/mongodb && sudo chown `id -u`:`id -g` /var/lib/mongo /var/log/mongodb。
三、配置MongoDB服务启动项
为使MongoDB作为系统服务运行,需配置systemd单元文件,实现开机自启与统一进程管理。
1、创建systemd服务配置文件:
执行 sudo nano /etc/systemd/system/mongod.service,写入标准服务定义内容,包含ExecStart指向bin/mongod路径、User指定运行用户、PIDFile与Type=simple等关键字段。
2、重载systemd配置并启用服务:
执行 sudo systemctl daemon-reload && sudo systemctl enable mongod。
3、启动服务并检查状态:
执行 sudo systemctl start mongod && sudo systemctl status mongod,确认输出中显示 active (running)。
四、初始化管理员用户与权限控制
默认情况下MongoDB未启用访问控制,必须手动创建具有root角色的管理员用户,否则无法启用auth模式。
1、连接本地mongod实例:
执行 mongo --port 27017 进入shell。
2、切换至admin数据库并创建用户:
执行 use admin,随后执行 db.createUser({user: "admin", pwd: "StrongPass123!", roles: [{role: "root", db: "admin"}]})。
3、退出shell并修改配置文件启用认证:
编辑 /etc/mongod.conf,在security段下添加 authorization: enabled,保存后重启服务:sudo systemctl restart mongod。
五、创建应用专用数据库与受限用户
为遵循最小权限原则,应为每个应用分配独立数据库及仅具备必要操作权限的用户,避免使用admin账户直连业务库。
1、使用管理员身份重新登录:
执行 mongo --port 27017 -u "admin" -p "StrongPass123!" --authenticationDatabase "admin"。
2、创建应用数据库并切换:
执行 use myappdb,随后执行 db.createCollection("users") 确保数据库存在。
3、为该数据库创建专用用户:
执行 db.createUser({user: "myappuser", pwd: "AppPass456!", roles: [{role: "readWrite", db: "myappdb"}]})。
# 重启
# 适用于
# 为例
# 您需要
# app
# 配置文件
# https
# linux
# centos
# ubuntu
# linux系统
# debian
# go
# 数据库
# amd
# 架构
# Static
# var
# 解压
# echo
# 管理器
# 为该
# 环境配置
# 下载页面
# mongodb
# 为使
# 访问控制
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- Windows 11登录时提示“用户配置文件服务登
- c# await 一个已经完成的Task会发生什么
- Win11怎么开启专注模式_Windows11时钟
- 如何提升Golang JSON序列化性能_Gola
- Python包结构设计_大型项目组织解析【指导】
- php订单日志权限怎么设_php订单日志文件权限设
- 用lighttpd能运行php吗_lighttpd
- Win11 explorer.exe频繁崩溃_修复
- Windows怎样关闭Edge新标签页广告_Win
- 如何在Golang中实现文件下载_Golang文件
- php打包exe后无法写入文件_权限问题解决方法【
- Win11怎么开启游戏工具栏_Windows11
- Win10怎样设置闹钟贪睡时间 Win10闹钟贪睡
- MAC怎么在照片中添加水印_MAC自带编辑工具文字
- Win11怎么恢复误删照片_Win11数据恢复工具
- php转mp4怎么设置帧率_调整php生成mp4视
- Windows怎样拦截QQ浏览器广告_Window
- 如何使用Golang开发简单的聊天室消息存储_Go
- 如何自定义Windows终端的默认配置文件?(Po
- 如何使用Golang读取日志文件_Golang b
- VSC怎样用终端运行PHP_命令行执行脚本的步骤【
- PHP中require语句后直接调用返回对象方法的
- php内存溢出怎么排查_php内存限制调试与优化方
- Windows 10怎么把任务栏放在屏幕上方_Wi
- 如何在 Go 中调用动态链接库(.so)中的函数
- Win11怎么修复系统文件_使用sfc命令修复Wi
- 如何使用Golang操作指针变量_Golang解引
- Win10系统映像怎么恢复 Win10使用系统映像
- PHP cURL GET请求:正确设置请求头与身份
- Win10如何卸载WindowsDefender_
- Win10怎样卸载DockerDesktop_Wi
- php打包exe如何加密代码_防反编译保护方法【技
- Win10如何卸载Skype_Win10卸载Sky
- Python列表推导式与字典推导式教程_简化代码高
- c++的STL算法库find怎么用 在容器中查找指
- c++ std::atomic如何保证原子性 c+
- Python文件和流处理指南_高效读写大体积数据文
- Windows11怎么用“记事本”自动换行与编码
- Win11局域网共享怎么设置 Win11文件夹网络
- Mac电脑进水了怎么办_MacBook进水后紧急处
- Win11怎么禁用键盘自带键盘_Win11笔记本禁
- win11 OneDrive怎么彻底关闭 Win1
- 如何在 Python 中将 ISO 8601 时间
- Win11开机自检怎么关闭_跳过Win11开机磁盘
- Python函数接口文档化_自动化说明【指导】
- c++如何使用std::bitset进行位图算法_
- Win11怎样安装网易云音乐_Win11安装网易云
- Win11怎么恢复出厂设置_Win11重置此电脑保
- Windows如何使用注册表查找和删除项?(reg
- PythonDocker高级项目部署教程_多容器管

QQ客服