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:需安装
libcurl
和openssl
等基础库
可通过以下命令查询系统版本和内核信息:
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 监听 localhost
的 27017
端口。若需允许远程访问,需修改配置文件 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 发行版。如需更详细的配置说明,可参考官方文档。