讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux怎么安装MongoDB_Linux如何部署NoSQL数据库【教程】

阿涛吖_2315

阿涛吖_2315

发布时间:2026-03-18 20:18:56

|

812人浏览过

|

来源于php中文网

原创

Ubuntu/Debian 上需添加 MongoDB 官方源安装 mongodb-org 才能获得新版完整功能;RHEL/CentOS 9 需注意 glibc 兼容性,建议用 RPM 或 tar.gz 手动部署;手动部署时须严格配置权限、路径和 SELinux 上下文。

linux怎么安装mongodb_linux如何部署nosql数据库【教程】

Ubuntu/Debian 上用 apt 安装 MongoDB 官方包最稳

直接用系统自带的 apt install mongodb 装出来的不是官方版,而是旧版 mongodb-org 的阉割替代品(mongodb 包),不支持 WiredTiger 引擎、没 mongosh、连 mongo 命令都默认不带。想用新版 MongoDB,必须加官方源。

实操建议:

  • 先卸载系统自带的:sudo apt remove mongodb mongodb-clients mongodb-server mongodb-server-core
  • 导入 GPG 密钥:wget -qO - https://www.mongodb.org/static/pgp/server-7.0.asc | sudo apt-key add -(注意:Ubuntu 22.04+ 已弃用 apt-key,应改用 gpg --dearmor 方式;若报错,换用 curl + sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-7.0.gpg)
  • 添加源: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(注意把 jammy 换成你系统的代号,如 focal 或 noble)
  • 更新并安装:sudo apt update && sudo apt install -y mongodb-org

装完不会自动启动,得手动:sudo systemctl start mongod,并确认状态:sudo systemctl status mongod。如果看到 Active: active (running) 且日志里没 Failed to load configuration 就算过第一关。

CentOS/RHEL 9 用 dnf 装要小心 glibc 版本冲突

RHEL 9 默认用 glibc 2.34,但 MongoDB 官方 RPM 包(截至 7.0)编译依赖 glibc 2.28+ —— 看似兼容,实际运行时可能在初始化存储引擎时报 undefined symbol: __libc_single_threaded。这不是配置问题,是二进制不匹配。

实操建议:

  • 别用 yum install mongodb-org(RHEL 9 已弃用 yum);改用 dnf,但必须指定架构和版本:sudo dnf install -y https://repo.mongodb.org/yum/redhat/9/mongodb-org/7.0/x86_64/RPMS/mongodb-org-server-7.0.14-1.el9.x86_64.rpm
  • 安装前先确认:ldd --version 输出的 glibc 版本 ≥ 2.28,再查 RPM 包的 Requires:rpm -qpR mongodb-org-server-7.0.14-1.el9.x86_64.rpm | grep glibc
  • 如果仍报符号错误,临时方案是降级到 mongodb-org-6.0(它对 glibc 更宽容),或改用 tar.gz 二进制包手动部署(见下节)

用 tar.gz 手动部署绕过包管理器限制

当系统太新(如 Rocky Linux 9)、太老(如 CentOS 7 EOL 后无法加源),或需要多版本共存(比如同时跑 6.0 和 7.0 做迁移测试),tar.gz 是最可控的方式。它不写注册表、不改系统路径、所有文件都在一个目录里,删掉就干净。

实操建议:

  • 下载地址固定格式:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-7.0.14.tgz(注意把 rhel80 换成匹配你系统的,如 ubuntu2204、rhel90)
  • 解压后别急着运行:bin/mongod --version 先验本能;再检查 bin/mongod 是否有执行权限(有时解压后丢失 x 位)
  • 启动命令必须显式指定数据目录和配置文件:bin/mongod --dbpath /opt/mongo-data --config ./mongod.conf;否则默认用 /data/db,而这个路径普通用户没权限写
  • mongod.conf 至少要写两行:storage.dbPath: /opt/mongo-data 和 systemLog.destination: file,不然日志会打屏,看不到错误

首次启动失败八成卡在 Permission denied 或 Failed to create directory

MongoDB 启动时要创建日志目录、数据目录、锁文件,还要读取配置里的 keyFile(如果启用了副本集认证)。任何一处权限不对,都会静默失败 —— systemctl status mongod 只显示 exited,journalctl -u mongod 才能看到真实报错,比如:Failed to create directory '/data/db': Permission denied 或 Unable to lock the file: /data/db/mongod.lock。

实操建议:

  • 数据目录必须由 mongod 进程用户(通常是 mongod 用户)拥有:sudo chown -R mongod:mongod /opt/mongo-data
  • 配置文件本身也要可读:sudo chmod 644 /etc/mongod.conf,且不能被 root 以外用户写
  • 如果开了 SELinux(RHEL/CentOS 默认开启),还得补策略:sudo semanage fcontext -a -t mongod_var_lib_t "/opt/mongo-data(/.*)?",然后 sudo restorecon -Rv /opt/mongo-data
  • 锁文件残留?别手删 mongod.lock —— 先确认进程真死了:ps aux | grep mongod,再用 sudo rm -f /opt/mongo-data/mongod.lock

权限这事没法偷懒,每个路径都得自己 ls -ld 看一眼 UID/GID 和 SELinux 上下文。漏一个,服务就起不来。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

更多
curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

3423

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

755

2023.10.30

undefined是什么
undefined是什么

undefined是代表一个值或变量不存在或未定义的状态。它可以作为默认值来判断一个变量是否已经被赋值,也可以用于设置默认参数值。尽管在不同的编程语言中,undefined可能具有不同的含义和用法,但理解undefined的概念可以帮助我们更好地理解和编写程序。本专题为大家提供undefined相关的各种文章、以及下载和课程。

11505

2023.07.31

网页undefined是什么意思
网页undefined是什么意思

网页undefined是指页面出现了未知错误的意思,提示undefined一般是在开发网站的时候定义不正确或是转换不正确,或是找不到定义才会提示undefined未定义这个错误。想了解更多的相关内容,可以阅读本专题下面的文章。

5487

2024.08.14

网页undefined啥意思
网页undefined啥意思

本专题整合了undefined相关内容,阅读下面的文章了解更多详细内容。后续继续更新。

2516

2025.12.25

mongodb和mysql的区别
mongodb和mysql的区别

mongodb和mysql的区别:1、数据模型;2、查询语言;3、扩展性和性能;4、可靠性。本专题为大家提供mongodb和mysql的区别的相关的文章、下载、课程内容,供大家免费下载体验。

735

2023.07.18

mongodb启动命令
mongodb启动命令

MongoDB 是一种开源的、基于文档的 NoSQL 数据库管理系统。本专题提供mongodb启动命令的文章,希望可以帮到大家。

2474

2023.08.08

MongoDB删除数据的方法
MongoDB删除数据的方法

MongoDB删除数据的方法有删除集合中的文档、删除整个集合、删除数据库和删除指定字段等。本专题为大家提供MongoDB相关的文章、下载、课程内容,供大家免费下载体验。

2344

2023.09.19

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

20

2026.09.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn