Linux系统下安装MongoDB的详细方法图文教程

 更新时间:2023年06月03日 13:48:18   作者:多加点辣也没关系  
这篇文章主要介绍了Linux系统下安装MongoDB的详细方法图文教程,需要的朋友可以参考下

前言

MongoDB 是一个基于分布式文件存储的数据库,主要用于为 web 应用提供可扩展的高性能数据存储解决方案。

以下内容是如何在 Linux 下搭建单机版 MongoDB 的教程,主要参照 MongoDB - 学习教程

如果想要在 Windows 下安装 MongoDB ,详见 MongoDB的安装(详细教程)

一、概述

MongoDB 由 C++语言编写,是一个介于关系型数据库和非关系型数据之间的产品,是非关系型数据库中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似与 jsonbson 格式,因此可以存储比较复杂的数据类型。MongoDB 最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据单表查询的绝大部分功能,而且还支持对数据建立索引。

MongoDB 的设计目标是高性能、可扩展、易部署、易使用,存储数据非常方便。所以它比传统的关系数据库,例如 MySQL,更加适合去应对一些 “三高” 需求:比如对数据库高并发的读写需求、对海量数据的高效率存储和访问需求以及对数据库的高可扩展和高可用性的需求。

由此可见 MongoDB 的特点如下:

高性能高可用高扩展丰富的查询支持动态模式和灵活的文档模型

应用常见上通常见到的是存储用户信息、聊天信息、游戏数据、订单信息等等。之前我们就有使用 MongoDB 存储一些优惠劵的信息,性能上也是非常不错的。

二、下载

官网:www.mongodb.com

在这里插入图片描述

选择 Products > Community Edition 就能进入社区版

在这里插入图片描述

在这里下载 Linux 版对应的安装包

在这里插入图片描述

在这里插入图片描述

在这里直接下载可能会比较慢,以下我提供了已经下载好的安装包:
链接: https://pan.baidu.com/s/1gNhoJc7T1TOKxQfvpHUkwg

提取码: 8e97 

三、安装与启动

连上 Linux 服务器(这里的服务器我用的是云服务器),我先创建一个 mongodb 的文件夹来存放安装包。

# 在 /soft 目录下创建一个空的文件夹 mongodb
mkdir /soft/mongodb
# 进入这个新建的文件夹下
cd /soft/mongodb

在这里插入图片描述

然后上传之前下载好的 Linux 下 MongoDB 的安装包,使用 rz 命令上次文件(有些终端工具是可以直接上传文件的,比如 FinalShell)

在这里插入图片描述
在这里插入图片描述

在该目录下再创建一个文件夹,并且将安装包解压到该文件夹中

# 在当前目录下(mysql)下创建一个 mongodb-5.0.11 文件夹
mkdir mongodb-5.0.11
# 解压安装包到该目录下
tar -xvf mongodb-linux-x86_64-rhel70-5.0.11.tgz -C mongodb-5.0.11

在这里插入图片描述

解压完成之后可以切换到 mongodb-5.0.11 目录下查看解压后的文件

# 进入 mongodb-5.0.11 文件夹
cd mongodb-5.0.11
# 进入 mongodb-linux-x86_64-rhel70-5.0.11 文件夹
cd mongodb-linux-x86_64-rhel70-5.0.11
# 查看目录下的文件
ll

在这里插入图片描述

可以看到和 windows 下解压之后的文件是差不多的,bin 目录下存放的是 MongoDB 的一些命令。

创建与 bin 目录同级的 data\dblogconf 目录用于存放数据和日志

# 创建 data\db 文件夹存放数据
mkdir -p data/db
# 创建 log 文件夹存放日志
mkdir log
# 创建 conf 文件夹存放配置文件
mkdir conf

在这里插入图片描述

log 目录下创建 mongodb.log 存放日志,在 conf 目录下创建 mongodb.conf 文件并添加以下配置信息:

# 进入 log 目录
cd log
# 创建 mongodb.log 文件
touch mongodb.log
# 在 conf 目录下创建 mongodb.conf 文件并编辑
vi ../conf/mongodb.conf

在这里插入图片描述

在这里插入图片描述

配置文件:

systemLog:
  # MongoDB发送所有日志输出的目标指定为文件
  # The path of the log file to which mongod or mongos should send all diagnostic logging information
  destination: file
  # mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
  path: "/soft/mongodb/mongodb-5.0.11/mongodb-linux-x86_64-rhel70-5.0.11/log/mongod.log"
  # 当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。
  logAppend: true
storage:
  # mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。
  # The directory where the mongod instance stores its data.Default Value is "/data/db".
  dbPath: "/soft/mongodb/mongodb-5.0.11/mongodb-linux-x86_64-rhel70-5.0.11/data/db"
  journal:
    #启用或禁用持久性日志以确保数据文件保持有效和可恢复。
    enabled: true
processManagement:
  #启用在后台运行mongos或mongod进程的守护进程模式。
  fork: true
net:
  # 服务实例绑定的IP,默认是localhost(10.0.4.12:局域网IP)
  bindIp: localhost,10.0.4.12
  # bindIp
  #绑定的端口,默认是27017
  port: 27017

进入到 bin 目录下 启动 MongoDB

# 以配置文件的形式启动mongod -f ../conf/mongodb.conf

在这里插入图片描述

如果在输入上述命令之后提示:-bash: mongod: command not found,但是 bin 目录下又有 mongod 的可执行文件,可查看文章末尾 可能会遇到的问题

在这里插入图片描述

看到 successfully 就表示启动成功了,forked process:19886 表示该服务启动的进程号是:19886,可通过 ps -ef | grep 19886 或者 ps -ef | grep mongod 才看 MongoDB 的运行情况。

在这里插入图片描述

停止关闭服务:

方式一:正常流程关闭:

# 客户端登录服务,注意,这里通过localhost登录,如果需要远程登录,必须先登录认证才行。
mongo --port 27017
# 关闭服务
db.shutdownServer()

方式二:快速关闭:

#通过进程编号关闭节点
kill -2 19886

四、连接

登录客户端服务,输入 mongo 命令便可以连接上

mongo

在这里插入图片描述

但是通常我们是通过图型化工具,远程进行连接。

一些连接数据库的图形化工具也能够连接 MongoDB,比如 Navicat,Compass 图形化界面客户端是能在 MongoDB 官网上找到的。

在这里插入图片描述

在这里插入图片描述

五、可能会遇到的问题

(1)-bash: mongod: 命令未找到

如果在输入 mongodb 相关的命令之后提示:-bash: mongod: command not found,但是 bin 目录下又有的可执行文件

在这里插入图片描述

原因是没有将可执行文件 添加至 path ,输入以下命令:

export PATH=/soft/mongodb/mongodb-5.0.11/mongodb-linux-x86_64-rhel70-5.0.11/bin:$PATH

在这里插入图片描述

重新启动下 MongoDB

在这里插入图片描述

(2)数据损坏重修复

如果一旦是因为数据损坏,则需要进行如下操作(了解):

删除lock文件:

# mongodb-data-db-directory 表示 数据存放路径
# 比如:/soft/mongodb/mongodb-5.0.11/mongodb-linux-x86_64-rhel70-5.0.11/data/db
rm -f <mongodb-data-db-directory>/*.lock

修复数据:

# mongodb-data-db-directory 表示 数据存放路径
# 比如:/soft/mongodb/mongodb-5.0.11/mongodb-linux-x86_64-rhel70-5.0.11/data/db
mongod --repair --dbpath=<mongodb-data-db-directory>

(3)远程连接时出错

在这里插入图片描述

这个错误提示出现的可能有很多,我就列举几个我能想到的吧

  • 首先去检查你的 MongoDB 是否关掉了,如果关了的话重启再连接
  • 服务器上面的防火墙是否是开着的状态,或者 27017 的端口是否对外开放
  • 如果你的服务器是云服务器的话,需要去云服务器上面开放 27017 的端口

第一种情况我就不赘述了,如果你的 MongoDB 是安装在虚拟机上面的话,简单粗暴的方式是直接关闭防火墙

# 关闭防火墙
systemctl stop firewalld.service 
# 查看防火墙的状态
firewall-cmd --state 
# 禁止firewall开机启动
systemctl disable firewalld.service

或者为了安全,只开放特定的端口号,MongoDB 默认端口是 27017

# 关闭防火墙
systemctl stop firewalld.service 
# 27017 端口对外开放
firewall-cmd --remove-port=27017/tcp --permanent 
# 重启防火墙
firewall-cmd --reload

但是,如果你 MongoDB 并不是安装在虚拟机上的,而是放到云服务器上面,那你必须还得在云服务上面开放这几个端口

行在 某某云 上面的,我就得做如下设置:

找到我的服务器,点击 更多,选择 管理

在这里插入图片描述

进入下一个页面之后,选择 防火墙

在这里插入图片描述

添加 27017 端口对外开放

在这里插入图片描述

测试连接

在这里插入图片描述

到此这篇关于Linux系统下安装MongoDB的详细方法图文教程的文章就介绍到这了,更多相关Linux MongoDB安装方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MongoDB教程之入门基础知识

    MongoDB教程之入门基础知识

    这篇文章主要介绍了MongoDB教程之入门基础知识,本文讲解了文档的注意事项、使用多个集合的必要性、集合的命名注意事项、数据库、MongoDB的启动、Shell的使用小技巧等内容,需要的朋友可以参考下
    2015-05-05
  • MongoDB索引的用法介绍

    MongoDB索引的用法介绍

    这篇文章介绍了MongoDB索引的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • MongoDB实现增删改查

    MongoDB实现增删改查

    本文详细讲解了MongoDB实现增删改查的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • mongodb数据库入门之CURD简单操作示例

    mongodb数据库入门之CURD简单操作示例

    这篇文章主要介绍了mongodb数据库入门之CURD简单操作,结合简单示例形式分析了MongoDB数据库基本的CURD增删改查相关操作技巧与注意事项,需要的朋友可以参考下
    2019-10-10
  • 开发分布式医疗挂号系统MongoDB集成实现上传医院接口

    开发分布式医疗挂号系统MongoDB集成实现上传医院接口

    这篇文章主要介绍了开发分布式医疗挂号系统MongoDB集成实现上传医院接口,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • mongodb exception: $concat only supports strings, not NumberInt32解决办法

    mongodb exception: $concat only supports strings, not Number

    这篇文章主要介绍了mongodb exception: $concat only supports strings, not NumberInt32解决办法,需要的朋友可以参考下
    2014-06-06
  • MongoDB学习笔记之MapReduce使用示例

    MongoDB学习笔记之MapReduce使用示例

    这篇文章主要介绍了MongoDB学习笔记之MapReduce使用示例,本文直接给出实例代码,需要的朋友可以参考下
    2015-07-07
  • MongoDB数据库两阶段提交实现事务的方法详解

    MongoDB数据库两阶段提交实现事务的方法详解

    这篇文章主要介绍了MongoDB数据库两阶段提交实现事务的方法,结合实例形式详细分析了MongoDB数据库事务提交、回滚、撤销等操作的原理、实现方法及相关操作注意事项,需要的朋友可以参考下
    2018-08-08
  • MongoDB数据库去重函数Distinct用法实例

    MongoDB数据库去重函数Distinct用法实例

    在MongoDB中可以使用distinct()方法对变量进行去重操作,distinct()方法是用于返回指定字段的唯一值的操作,这篇文章主要给大家介绍了关于MongoDB数据库去重函数Distinct用法的相关资料,需要的朋友可以参考下
    2024-06-06
  • mongodb安装_动力节点Java学院整理

    mongodb安装_动力节点Java学院整理

    这篇文章主要介绍了mongodb安装,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08

最新评论