MongoDB 4.2——安装 MongoDB

安装 MongoDB

MongoDB 的二进制文件可用于 Linux、macOS、Windows 和 Solaris 系统。这意味着在大多数平台上,可以从 MongoDB 下载中心的页面下载一份压缩包,解压并运行二进制文件。

MongoDB 服务器不仅需要一个目录来写入数据库文件,而且需要一个端口来监听连接。本节会介绍在两种系统Windows 系统和其他系统(Linux/Unix/macOS)​ 中的完整安装过程。

当说到"安装 MongoDB"时,通常说的就是安装核心数据库服务器 mongod。mongod 既可以作为单机服务器使用,也可以作为副本集的成员。大多数情况下,这就是要使用的 MongoDB 进程。

1、选择版本

MongoDB 使用的版本管理模式(schema)相当简单:偶数号是稳定版本,奇数号是开发版本。例如,任何以4.2 开头的版本都是稳定版本,比如 4.2.0、4.2.1 和4.2.8。任何以 4.3 开头的版本都是开发版本,比如4.3.0、4.3.2 或 4.3.12。下面将以 4.2 和 4.3 版本为例来演示版本变化的时间线。

  1. MongoDB 4.2.0 发布。这是一个主要版本,有大量的更新日志(changelog)。
  2. 在开发者着手开发 4.4 版本(下一个主要的稳定版本)之后,发布了 4.3.0 版本。这是一个新的开发分支,与 4.2.0 非常相似,但可能会有一两个额外的特性,也可能存在一些漏洞。
  3. 随着开发者继续添加特性,他们发布了 4.3.1、4.3.2等版本。这些版本不应该在生产环境中使用。
  4. 一些小的漏洞修复可能会被反向应用(backport)到4.2 分支上,这会导致 4.2.1、4.2.2 等版本的发布。开发者对于什么可以被反向应用是很保守的,一个稳定的发行版很少会添加新的特性。通常来说,其只会进行漏洞修复。
  5. 在 4.4.0 完成了所有主要的既定目标之后,4.3.7(或任何最新的开发版本)会变为 4.4.0-rc0。
  6. 在对 4.4.0-rc0 进行了大量测试之后,通常会发现一些需要修复的小漏洞。开发者修复了这些漏洞并发布了 4.4.0-rc1 版本。
  7. 开发者重复第 6 步,直到没有新的漏洞出现,然后将 4.4.0-rc2(或任何最新版本)重命名为 4.4.0。
  8. 开发者从步骤 1 开始,将所有版本号增加 0.2。通过 MongoDB 的漏洞跟踪系统中的核心服务器路线图,可以看到一个生产版本离发布有多近。

如果是在生产环境中运行,那么应该使用稳定版本。如果计划在生产环境中使用开发版本,则应该首先在邮件列表或 IRC 中询问开发者的建议。

如果刚刚开始项目开发,那么使用开发版本可能是更好的选择。等到项目部署至生产环境时,可能已经有一个包含所使用特性的稳定版本发布了(MongoDB 坚持每 12 个月为周期发布一个稳定版本)​。然而,必须在这一点与可能遇到的服务器漏洞之间进行权衡,这可能会导致新用户不敢尝试。

2、在Windows系统中安装

要在 Windows 系统中安装 MongoDB,应在 MongoDB下载中心的相应页面下载 Windows 的 .msi 文件。根据上一节的建议选择正确的 MongoDB 版本。点击链接后就会开始下载 .msi 文件,然后双击 .msi 文件图标来启动安装程序。

现在需要创建一个目录,以便 MongoDB 在其中写入数据库文件。默认情况下,MongoDB 会尝试使用当前驱动器上的 \data\db 目录作为它的数据目录(如果在Windows 系统的 C: 下运行 mongod,那么它会使用C:\Program Files\MongoDB\Server&\data 目录)​。这将由安装程序自动创建。如果选择使用 \data\db 之外的目录,那么在启动MongoDB 时需要指定路径,稍后我们会对其进行介绍。

在已经有了一个数据目录后,可以打开命令行提示符(cmd.exe)​。在解压后的 MongoDB 二进制文件所在目录下运行如下命令:

bash 复制代码
$ C:\Program Files\MongoDB\Server\&<VERSION>\bin\mongod.exe

如果选择的目录不是 C:\ProgramFiles\MongoDB\Server&\data,则必须使用 --dbpath 参数来对其进行指定:

bash 复制代码
$ C:\Program Files\MongoDB\Server\&<VERSION>\bin\mongod.exe \
        --dbpath C:\Documents and Settings\Username\My Documents\db

** 作为服务安装**

MongoDB 也可以作为服务安装在 Windows 系统中。要做到这一点,只需使用完整路径运行,转义其中的空格,并使用 --install 选项:

bash 复制代码
$ C:\Program Files\MongoDB\Server\4.2.0\bin\mongod.exe \
          --dbpath "\"C:\Documents and Settings\Username\My Documents\db\"" \
          --install

之后就可以使用控制面板来启动和停止 MongoDB 服务了。

3、在POSIX系统(Linux和Mac OSX)中安装

选择 MongoDB 的一个版本。进入MongoDB 下载中心,选择适合你操作系统的版本。

如果使用的是 Mac 并且正在运行 macOS Catalina10.15+,则应该使用 /System/Volumes/Data/db 目录而不是 /data/db 目录。这个版本的系统做了一项变更,使根目录变为了只读,并且会在重新启动时重置,这将导致 MongoDB 数据文件夹的丢失。

必须创建一个目录,以便数据库将文件放入其中。默认情况下,数据库会使用 /data/db,也可以指定任何其他目录。如果创建默认目录,则需要确保它具有正确的写权限。可以运行以下命令来创建目录并设置权限:

bash 复制代码
      $ mkdir -p /data/db
      $ chown -R $USER:$USER /data/db

如果需要,可以使用 mkdir -p 创建指定目录及其所有父目录(如果 /data 目录不存在,则会先创建 /data 目录,然后再创建 /data/db 目录)​。使用 chown 命令修改 /data/db 的所有权,以便用户对其进行写入。当然,也可以在用户的主文件夹中创建目录,并在启动数据库时将其指定为 MongoDB 的数据目录,从而避免任何权限问题。

对从 MongoDB 下载中心下载的 .tar.gz 文件进行解压:

bash 复制代码
      $ tar zxf mongodb-linux-x86_64-enterprise-rhel62-4.2.0.tgz
      $ cd mongodb-linux-x86_64-enterprise-rhel62-4.2.0

现在可以启动数据库了:

bash 复制代码
      $ bin/mongod

或者,如果希望使用其他数据库路径,则可以使用 --dbpath 选项对其进行指定:

bash 复制代码
$ bin/mongod --dbpath ~/db

可以运行 bin/mongod --help 来查看所有可能的选项。

通过包管理器安装

还有许多包管理器工具可用于安装 MongoDB。如果选择使用其中的一种,可以选择 Red Hat、Debian 和Ubuntu 的官方包,以及许多针对其他系统的非官方包。如果使用的是非官方版本,则需要确保安装的是相对比较新的版本。

在 macOS 系统中,有用于 Homebrew 和 MacPorts 的非官方包。要使用 MongoDB Homebrew 的 tap,首先需要安装该 tap,然后通过 Homebrew 安装所需的MongoDB 版本。下面的示例演示了如何安装 MongoDB社区版的最新生产版本。可以在 macOS 终端会话中添加自定义 tap:

bash 复制代码
      $ brew tap mongodb/brew

然后使用以下命令安装 MongoDB 社区版服务器的最新生产版本(包括所有命令行工具)​:

bash 复制代码
      $ brew install mongodb-community

如果选择的是 MacPorts 版本,则需要注意:编译所有的Boost 库需要花费数小时,这是安装 MongoDB 的先决条件。

不管使用的包管理工具是什么,在遇到问题并需要找到 MongoDB 日志(log)文件之前,应该先明确日志文件的位置。在出现任何可能的问题之前,确保日志被正确保存是很重要的。

相关推荐
吴声子夜歌1 小时前
MongoDB 8.0——MongoDB的安装
数据库·mongodb
韭菜炒鸡肝天1 小时前
Django模型迁移指南:从命令用法到最佳实践
数据库·django·sqlite
toooooop814 小时前
如何用 ss + ps 精准定位本机 Redis 的“隐形”消费者?
linux·数据库·redis·缓存
spider_xcxc14 小时前
Argo CD App of Apps 模式深度解析:像管理应用一样管理应用
大数据·数据库·elasticsearch
snow@li17 小时前
MyBatis:动态 SQL 全景梳理
数据库·sql·mybatis
360智汇云17 小时前
KV-Probe:通用 KV 数据库测试套件
数据库
x8617 小时前
我与 IT 这三十年:2015,大数据平台的重与轻
数据库·it史
z落落18 小时前
T-SQL 事务(Transaction)
java·数据库·sql
ClouGence19 小时前
MySQL迁移到达梦怎么做?信创数据库低停机迁移实战
数据库·sql·mysql