导读:本期聚焦于又改需求创作的《Ubuntu上如何安装和使用MongoDB?新手也能轻松上手的详细教程》,敬请观看详情。想在Ubuntu系统上搭建MongoDB数据库却不知道从哪一步开始?这篇文章从零讲起,先带你搞清楚MongoDB和传统关系型数据库的区别,再手把手演示通过apt官方源完成安装、启动服务、进入Shell的完整流程。安装之后还会介绍数据库与集合的增删改查基本操作,附上可直接运行的命令示例。针对新手最容易踩的坑,比如服务启动失败、认证报错、远程连接被拒绝、卸载残留等常见问题,文中也逐条给出排查思路和解决办法,照着做就能顺利跑通整个流程。

MongoDB是目前最流行的文档型NoSQL数据库之一,它用类似JSON的BSON格式存储数据,不需要预先定义表结构,字段可以灵活增减,特别适合业务变化快、数据结构不固定的项目。本文以Ubuntu为例,完整讲解MongoDB的安装、基本使用以及常见问题的排查方法,整个过程不要求你有数据库基础。

Ubuntu上如何安装和使用MongoDB?新手也能轻松上手的详细教程

一、安装前的准备工作

在动手安装之前,建议先用lsb_release -a查看自己的Ubuntu版本号。这一点很重要,因为MongoDB官方为不同Ubuntu版本提供了不同的软件源,版本对不上会导致安装失败或者服务无法启动。Ubuntu 20.04对应的源地址包含focal字段,22.04对应jammy,18.04对应bionic,配置源文件时要根据自己的实际情况选择。

需要说明的是,Ubuntu自带的软件源里虽然也有一个mongodb包,但那是社区维护的旧版本,官方早已不再推荐。正确做法是添加MongoDB官方apt源来安装官方构建的版本,这样才能获得最新的功能和安全补丁。另外,安装过程需要root权限,请确保你有sudo权限的账号。

二、在Ubuntu上安装MongoDB的完整步骤

下面以Ubuntu 22.04安装MongoDB 7.0为例。第一步,安装依赖工具并导入官方GPG密钥:

sudo apt-get install gnupg curl -y
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
  sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor

第二步,创建源文件/etc/apt/sources.list.d/mongodb-org-7.0.list,写入如下内容:

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

第三步,刷新软件源并安装:

sudo apt-get update
sudo apt-get install -y mongodb-org

安装完成后可以执行mongod --version查看版本号,能正常输出说明二进制文件已经就位。如果apt-get update时提示GPG错误,多半是密钥导入那一步失败了,重新执行第一条命令即可。

三、启动服务并进入MongoDB Shell

MongoDB安装后不会自动启动,需要手动开启。用systemd管理服务最方便:

sudo systemctl start mongod
sudo systemctl enable mongod   # 设置开机自启
sudo systemctl status mongod   # 查看运行状态

看到active (running)字样就说明服务已经跑起来了。接着在终端输入mongosh进入交互式Shell。注意MongoDB 6.0之后旧的mongo命令已经被移除,如果系统提示找不到命令,请安装新的Shell工具:sudo apt-get install -y mongodb-mongosh

进入Shell后,先执行几个基本命令熟悉环境:db显示当前数据库,show dbs列出所有数据库,use mydb切换数据库(不存在会在首次写入时自动创建)。这种“用到才建”的机制和MySQL的显式CREATE DATABASE很不一样,新手要有个适应过程。

四、数据库与集合的基本操作

下面演示最常用的增删改查。先切到一个测试数据库,往users集合里插入一条文档:

use testdb

// 插入一条数据
db.users.insertOne({ name: "张三", age: 25, city: "北京" })

// 查询数据
db.users.find({ name: "张三" })

// 格式化输出
db.users.find().pretty()

// 更新数据
db.users.updateOne({ name: "张三" }, { $set: { age: 26 } })

// 删除数据
db.users.deleteOne({ name: "张三" })

// 删除整个集合
db.users.drop()

MongoDB的查询条件非常灵活,比如db.users.find({ age: { $gte: 20, $lt: 30 } })可以查出年龄在20到30之间的文档,$gte表示大于等于,$lt表示小于。这类操作符是日常使用频率最高的知识点,建议动手多试几个。

删除数据库要谨慎,命令是先use testdb切过去,再执行db.dropDatabase(),数据会立刻清空且无法恢复,生产环境千万不要随便执行。

五、常见问题与注意事项

1. 服务启动失败。执行sudo systemctl status mongod如果显示failed,先看日志找原因:sudo tail -50 /var/log/mongodb/mongod.log。最常见的报错是数据目录权限问题,可以用sudo chown -R mongodb:mongodb /var/lib/mongodb修复;如果是异常关机导致的锁文件残留,删除/var/lib/mongodb/mongod.lock后重启服务即可。

2. 远程连接被拒绝。默认配置只监听127.0.0.1,其他机器连不上是正常的。如需远程访问,编辑/etc/mongod.conf,把net部分的bindIp改成0.0.0.0,然后重启服务。但这样做之前务必先开启认证,否则数据库等于裸奔在公网上,很容易被勒索程序清库。

3. 开启密码认证。先进入Shell创建管理员账号,再修改配置文件启用security.authorization,最后重启:

use admin
db.createUser({
  user: "admin",
  pwd: "你的密码",
  roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
# 编辑 /etc/mongod.conf,在文件中添加:
# security:
#   authorization: enabled
sudo systemctl restart mongod

4. 彻底卸载的方法。如果想重新安装或者清理环境,先停止服务,再卸载包、删除数据和日志:sudo apt-get purge mongodb-org*,然后删除/var/lib/mongodb/var/log/mongodb两个目录。注意只要不删除数据目录,重装后原有数据依然还在,这也是保留数据的一种方式。

整体来看,Ubuntu上部署MongoDB的核心就是配好官方源、用systemd管好服务、进Shell练熟增删改查这三件事。把上面这些命令实际敲一遍,遇到问题对照日志排查,基本就能顺利入门了。

UbuntuMongoDB安装MongoDB使用教程修改时间:2026-09-13 02:18:28

免责声明:已尽一切努力确保本网站所含信息的准确性。网站作品多为原创整理与精心创作,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们进行处理Email:chomcom@qq.com。
引用或转载本作品时,请注明当前出处:https://www.ipipp.com/html/20260913/55705.html,基于非商业用途的前提下,欢迎转载或二创本作品。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。