linux下的MongoDB手动安装部署详解

ops/2025/1/12 19:02:55/

MongoDB数据库很常用.但是有时候难免需要手动部署。这里分享下教程笔记,分享给有需要的小伙伴,需要的可以收藏。

要解压和安装 MongoDB,您可以按照以下步骤操作:

下载:

https://www.mongodb.com/try/download/community

步骤 1: 下载 MongoDB 压缩包

如果您已经下载了 mongodb-linux-x86_64-ubuntu2204-6.0.19.tgz 文件,可以跳过这一步。

步骤 2: 解压 tar.gz 文件

  1. 打开终端。

  2. 使用 cd 命令导航到下载文件的目录。例如,如果文件位于 ~/Downloads,请运行:

    cd ~/Downloads
    
  3. 使用以下命令解压该文件:

    tar -xvzf mongodb-linux-x86_64-ubuntu2204-6.0.19.tgz
    

    这会解压文件并在当前目录下生成一个名为 mongodb-linux-x86_64-ubuntu2204-6.0.19 的目录。

步骤 3: 移动到合适的目录

  1. 创建一个目录来存放 MongoDB。通常,建议将 MongoDB 移动到 /usr/local/bin/opt

    sudo mkdir -p /usr/local/bin/mongodb
    
  2. 将解压的文件移动到该目录中:

    sudo mv mongodb-linux-x86_64-ubuntu2204-6.0.19/* /usr/local/bin/mongodb/
    

步骤 4: 设置文件权限

确保 MongoDB 文件夹中的文件具有适当的权限:

sudo chown -R $USER:$USER /usr/local/bin/mongodb

步骤 5: 创建数据和日志目录

MongoDB 需要数据和日志目录来存储数据。您可以使用以下命令创建这些目录:

sudo mkdir -p /data/db
sudo mkdir -p /var/log/mongodb

设置权限:

sudo chown -R $USER:$USER /data/db
sudo chown -R $USER:$USER /var/log/mongodb

步骤 6: 启动 MongoDB

您可以手动启动 MongoDB 服务器,使用以下命令:

/usr/local/bin/mongodb/bin/mongod --dbpath /data/db --logpath /var/log/mongodb/mongo.log --fork
  • --dbpath: 指定数据存储的位置。
  • --logpath: 指定日志文件的位置。
  • --fork: 在后台运行 MongoDB。

如果没有错误,您应该能看到 MongoDB 正在运行的消息。

步骤 7: 测试 MongoDB

打开新的终端窗口,运行以下命令以启动 MongoDB 客户端:

/usr/local/bin/mongodb/bin/mongo

如果您看到 MongoDB 提示符,说明 MongoDB 已成功启动并可以接受连接。

其他设置(可选)

为了便于使用,您可以将 MongoDB 的 bin 目录添加到您的 PATH 环境变量中:

  1. 打开终端并运行:

    echo 'export PATH=$PATH:/usr/local/bin/mongodb/bin' >> ~/.bashrc
    source ~/.bashrc
    

这样您就可以直接使用 mongodmongo 命令,而无需输入完整路径。

完成

现在您已经成功解压和安装了 MongoDB!

如果在成功安装 MongoDB 后找不到 mongosh,这是因为 mongosh(MongoDB Shell)是 MongoDB 5.0 及更高版本的一个独立组件,而不是部署在 MongoDB 服务器包中的一部分。

安装 mongosh

您可以通过以下方式安装 mongosh

方法 1: 使用 npm 安装

如果您已经安装了 Node.js 和 npm,可以通过以下命令使用 npm 安装 mongosh

npm install -g @mongosh/cli-repl
方法 2: 使用 apt 安装(适用于 Debian/Ubuntu)
  1. 添加 MongoDB 的官方 GPG 密钥:

    wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-6.0.gpg
    
  2. 创建一个源列表文件:

    echo "deb [signed-by=/usr/share/keyrings/mongodb-6.0.gpg] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
    

    请根据您使用的 Ubuntu 版本调整 focal(如果是 Ubuntu 22.04,使用 jammy)。

  3. 更新 apt 包索引并安装 mongosh

    sudo apt update
    sudo apt install -y mongodb-mongosh
    
方法 3: 直接下载并安装

您还可以直接下载 mongosh 的二进制包,步骤如下:

  1. 前往 MongoDB 官方下载页面 MongoDB Shell Download。

  2. 找到对应您操作系统的 mongosh 版本并下载。

  3. 解压并将二进制文件移动到合适的目录,例如 /usr/local/bin

    tar -xvzf mongosh-linux-x86_64-*.tgz
    sudo mv mongosh-linux-x86_64-* /usr/local/bin/mongosh
    
  4. 确保文件有执行权限,并将其移动到 PATH 中:

    sudo chmod +x /usr/local/bin/mongosh
    

测试 mongosh

安装完成后,您可以通过终端运行以下命令来启动 mongosh

mongosh

端口被占用解决

要查看哪个进程占用了特定端口(例如端口 80),您可以使用以下命令:

1. 使用 lsof 命令

lsof(List Open Files)是一个显示当前打开文件及其相关进程的工具。使用以下命令来查看占用端口 80 的进程:

sudo lsof -i :80

这将输出正在监听端口 80 的进程信息,包括进程的 PID(进程 ID)、用户、命令等。

2. 使用 netstat 命令

netstat 是一个网络相关的命令行工具,您可以使用它查看网络连接及其状态。使用以下命令来查看占用端口 80 的进程:

sudo netstat -tuln | grep ':80'

这将列出所有监听端口 80 的服务及其相关信息。

3. 使用 ss 命令

ss 是一个比 netstat 更加现代化的工具,性能更高。您可以用以下命令查询正在使用端口 80 的进程:

sudo ss -tuln | grep ':80'

4. 使用 fuser 命令

fuser 命令可以显示与指定文件或套接字相关的进程 ID。您也可以使用它来查找占用端口的进程:

sudo fuser 80/tcp

输出将显示占用端口 80 的进程 PID。

5. 处理占用端口的进程

一旦找到了占用端口的进程,您可以使用 kill 命令终止该进程。假设找到了进程 PID 为 1234,您可以运行以下命令:

sudo kill 1234

如果进程不响应,可以使用强制终止:

sudo kill -9 1234

使用上述命令可以轻松找出哪个进程占用了端口 80,并根据需要结束该进程。请注意在终止进程时,要确保不影响到系统的其他重要服务。

备份和恢复

简单来说,备份数据可恢复数据:

##备份mongodump --uri="mongodb://test1:111111@127.0.0.1:27017/test1" --out=~/dumps/
##恢复
mongorestore --uri="mongodb://test1:111111@127.0.0.1/test1" --nsInclude=test1.* ~/dumps/test1##创建用户
mongosh "mongodb://localhost:27017"
use atomdco
db.createUser({ user: "test1", pwd: "111111", roles: [{ role: "readWrite", db: "atomdco" }] })

基本命令

查看当前数据库

db

切换数据库

use myDatabase

查看所有数据库

show databases

查看当前数据库中的集合

show collections

CRUD操作

插入文档

db.collection.insertOne({ name: "John", age: 30 });
db.collection.insertMany([{ name: "Jane", age: 25 }, { name: "Adam", age: 28 }]);

查询文档

db.collection.find();
db.collection.find({ age: { $gt: 25 } });

小结

以上就是手动安装MongoDB的详细过程.关于如何配置和创建用户和分配权限,详见博主的另外一篇笔记分享:[mongosh常用命令详解及如何开启MongoDB身份验证]https://blog.csdn.net/yyz_1987/article/details/139857777?spm=1001.2014.3001.5502

其他资源

MongoDB Shell Download


http://www.ppmy.cn/ops/149530.html

相关文章

昆虫分割数据集labelme格式9484张1类别

数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):9484 标注数量(json文件个数):9484 标注类别数:1 标注类别名称:["insect"] 每个类别标注的框数&…

论文阅读:LDA-AQU:Adaptive Query-guided Upsampling via Local Deformable Attention

论文地址:arxiv 摘要 提出了一种上采样的模块,有着较好的效果。 正文 常见的上采样方法有最近邻插值和双线性插值,通过手动的范式从邻近点聚合特征。之后又提出了可学习的上采样方法,比如反卷积,像素洗牌等。但是这…

Keil C51 与 Keil MDK(ARM-stm32?):嵌入式开发的利器

Keil C51 与 Keil MDK(ARM):嵌入式开发的利器 引言 在嵌入式系统开发领域,Keil 软件套件是广受开发者欢迎的工具之一。Keil 提供了多种开发环境,其中最著名的两个是 Keil C51 和 Keil MDK(Microcontrolle…

arcgis中用python脚本批量给多个要素类的相同字段赋值

1、python脚本 import arcpy# 设置工作空间路径 arcpy.env.workspace = r"D:\test.gdb"# 要素集名称 feature_dataset = "test"# 线要素类名称列表,初始化为空 line_feature_classes = []# 遍历要素集获取所有线要素类 for fc in arcpy.ListFeatureClass…

【C语言学习】——命令行编译运行 C 语言程序的完整流程,理解C语言编译的底层实现和编译原理相关知识

今天要学习的内容是 命令行编译运行 C 语言程序,更好的学习理解C语言编译运行的底层实现和编译原理相关知识,下面介绍命令行编译运行 C 语言程序的完整流程 一、理论讲解 1. 编译原理概述 1.1 编译过程的四个主要阶段 源代码 (.c) → 预处理 → 编译 …

设计模式简介

设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。…

【NLP 19、词的向量化和文本向量化】

祝我们都能在各自的选择中渐入佳境 —— 25.1.8 一、向量化 向量对于机器学习非常重要 大量的算法都需要基于向量来完成 1.文本向量化 对于机器来说,字符是没有含义的,只是有区别 只使用字符无法去刻画字与字、词与词、文本与文本之间的关系 文本转…

12 USART串口通讯

1 串口物理层 两个设备的“DB9接口”之间通过串口信号建立连接,串口信号线中使用“RS232标准”传输数据信号。由于RS232电平标准的信号不能直接被控制器直接识别,所以这些信号会经过“电平转换芯片”转换成控制器能识别的“TTL校准”的电平信号&#xff…