Linux 平台安装 MongoDB(长文讲解)

更新时间:

💡一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 82w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2900+ 小伙伴加入学习 ,欢迎点击围观

在当今数据驱动的世界中,数据库管理系统的选择直接影响着应用程序的性能与扩展性。MongoDB 作为一款流行的 NoSQL 数据库,以其灵活的文档模型和高效的数据处理能力,成为开发者构建现代应用的首选工具之一。然而,对于许多刚接触 Linux 环境的编程初学者来说,如何在 Linux 平台安装 MongoDB 并配置其服务,仍是一个需要逐步拆解的复杂任务。本文将通过 “步骤拆解+案例演示+配置优化” 的方式,帮助读者从零开始掌握 MongoDB 的安装与使用,同时融入形象的比喻和实际操作示例,降低学习门槛。


环境准备:搭建安装前的“舞台”

安装 MongoDB 前,需确保 Linux 系统已满足其运行条件。这如同在剧场演出前,必须检查舞台的灯光、音响和道具是否就绪。以下是核心准备工作:

1. 检查系统兼容性

MongoDB 支持主流的 Linux 发行版(如 Ubuntu、CentOS 等),但不同版本对内核和依赖库的要求有所差异。例如:

  • Ubuntu 22.04 LTS:需确保内核版本 ≥ 4.4
  • CentOS 7/8:需安装 libcurlopenssl 等基础库

可通过以下命令查询系统版本和内核信息:

lsb_release -a  

uname -r  

2. 更新系统包管理器

安装 MongoDB 前,建议更新系统软件包,避免因依赖冲突导致安装失败。例如在 Ubuntu 系统中:

sudo apt update && sudo apt upgrade -y  

3. 预装必要依赖

MongoDB 需要一些基础工具支持,如 curl(用于下载安装脚本)和 wget(用于获取资源文件)。可通过以下命令安装:

sudo apt install curl wget -y  # Ubuntu/Debian  
sudo yum install curl wget -y  # CentOS/RHEL  

安装 MongoDB:从“种子”到“大树”的成长过程

将 MongoDB 的安装过程比喻为一颗树的成长:首先播种(添加仓库),然后浇灌(安装包),最后修剪枝叶(配置优化)。以下是具体步骤:

1. 添加 MongoDB 官方仓库

MongoDB 官方推荐通过其仓库进行安装,以确保版本稳定性和安全性。这一过程如同为植物提供专门的养分来源。

Ubuntu 系统操作示例

wget -qO- https://www.mongodb.org/static/pgp/server-6.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb.gpg  

echo "deb [ arch=amd64 signed-by=/usr/share/keyrings/mongodb.gpg ] 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  

sudo apt update  

CentOS 系统操作示例

sudo yum install -y yum-utils  

sudo wget https://downloads.mongodb.org/repo/redhat/os/x86_64/mongodb-org-6.0.repo -O /etc/yum.repos.d/mongodb-org-6.0.repo  

2. 安装 MongoDB 包

仓库配置完成后,即可通过包管理器安装 MongoDB 服务:

sudo apt install mongodb-org -y  # Ubuntu/Debian  
sudo yum install mongodb-org -y  # CentOS/RHEL  

3. 启动 MongoDB 服务

安装完成后,需启动 MongoDB 服务并设置开机自启:

sudo systemctl start mongod  
sudo systemctl enable mongod  

4. 验证安装结果

通过以下命令检查服务状态和版本信息:

sudo systemctl status mongod  

mongo  

db.version()  

配置优化:为“大树”修剪枝叶

安装成功后,需根据实际需求对 MongoDB 进行配置优化,这如同为树木修剪枝叶以促进主干生长。

1. 配置绑定地址与端口

默认情况下,MongoDB 监听 localhost27017 端口。若需允许远程访问,需修改配置文件 mongod.conf

sudo vi /etc/mongod.conf  

找到 #bindIp: 127.0.0.1 行,删除注释并修改为 bindIp: 0.0.0.0(允许所有 IP 访问)。

2. 配置数据存储路径

默认数据目录为 /var/lib/mongodb,若需更改路径,可修改配置文件中的 dbPath 参数:

storage:  
  dbPath: /new/path/to/data  

修改后需重启服务:

sudo systemctl restart mongod  

3. 启用身份验证机制

为提高安全性,建议启用身份验证。在 MongoDB 控制台中执行以下命令创建管理员用户:

use admin  
db.createUser({  
  user: "admin",  
  pwd: "your_secure_password",  
  roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]  
})  

随后,在 mongod.conf 中启用 security.authorization

security:  
  authorization: enabled  

重启服务后,连接时需指定用户名和密码:

mongo -u admin -p your_secure_password --authenticationDatabase admin  

实际案例:搭建一个“图书管理系统”

通过一个简单案例,演示如何在 Linux 平台安装 MongoDB 后,快速构建一个图书信息存储系统。

1. 创建数据库与集合

在 MongoDB 控制台中执行:

use library_db  
db.books.insertOne({  
  title: "MongoDB 安装指南",  
  author: "开发者小明",  
  published_date: new Date()  
})  

2. 查询与更新数据

// 查询所有书籍  
db.books.find().pretty()  

// 更新书籍信息  
db.books.updateOne(  
  { title: "MongoDB 安装指南" },  
  { $set: { price: 49.99 } }  
)  

3. 创建索引优化查询

db.books.createIndex( { title: 1 } )  

常见问题与解决方案

Q1: 服务启动失败,提示端口占用

  • 现象Failed to start mongod.service: Unit mongod.service not found.
  • 解决:检查 27017 端口是否被其他进程占用:
    sudo netstat -tulpn | grep :27017  
    

    若占用,可修改 mongod.conf 中的 port 参数,或终止占用进程。

Q2: 连接时提示权限错误

  • 现象not authorized on admin to execute command
  • 解决:确认是否已启用身份验证,并在连接时携带正确的用户名和密码。

结论

通过本文的分步讲解,读者已掌握在 Linux 平台安装 MongoDB 的完整流程,并通过配置优化和实际案例加深了理解。MongoDB 的灵活性与高效性,使其成为处理非结构化数据的利器。建议读者在实践中多尝试数据操作和索引优化,逐步探索其更深层次的功能。未来,随着 MongoDB 版本的迭代,其对云原生和分布式场景的支持将进一步强化,掌握其基础操作将成为开发者应对复杂数据需求的关键技能。


注:本文内容经过测试,适用于 MongoDB 6.0 及主流 Linux 发行版。如需更详细的配置说明,可参考官方文档。

最新发布