CentOS7安装及卸载MongoDB

mongodb

CentOS7安装及卸载MongoDB

安装 MongoDB 社区版本

配置 yum 包管理系统

创建 /etc/yum.repos.d/mongodb-org-4.2.repo 文件,这样你就可以使用 yum 安装 MongoDB,文件内容如下:

1
2
3
4
5
6
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc

You can also download the .rpm files directly from the MongoDB repository. Downloads are organized by Red Hat / CentOS version (e.g. 7), then MongoDB release version (e.g. 4.2), then architecture (e.g. x86_64).

安装 MongoDB

执行下列命令安装最新稳定版本:

1
sudo yum install -y mongodb-org

如果要安装特定版本的 MongoDB,请分别指定每个组件软件包,并将版本号附加到软件包名称中,如以下示例所示:

1
sudo yum install -y mongodb-org-4.2.3 mongodb-org-server-4.2.3 mongodb-org-shell-4.2.3 mongodb-org-mongos-4.2.3 mongodb-org-tools-4.2.3

你可以指定任何可用的 MongoDB 版本。但是,当有较新版本时,yum会升级软件包。为防止意外升级,请固定包。要固定软件包,请在 /etc/yum.conf 文件中添加以下 exclude 指令:

1
exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools

运行 MongoDB

运行前需要确认数据目录和日志目录是否存在,如果是初次尝试使用 MongoDB,建议使用默认目录。

目录路径

使用默认目录

默认情况下,MongoDB 使用 mongod 用户帐户运行,并使用以下默认目录:

  • /var/lib/mongo (数据目录)
  • /var/log/mongodb (日志目录)

如果你是通过软件包管理器安装的,将会自动创建默认目录,并将这些目录的所有者和组设置为 mongod。

如果你是通过下载压缩包进行安装,未创建默认 MongoDB 目录的,需要手动创建 MongoDB 数据和日志目录:

1
2
sudo mkdir -p /var/lib/mongo
sudo mkdir -p /var/log/mongodb

创建后,将这些目录的所有者和组设置为 mongod:

1
sudo chown -R mongod:mongod <directory>

<directory> 为你创建的目录。

使用非默认目录

要使用默认目录以外的数据目录和/或日志目录:

  • 创建一个或多个新目录。

  • 编辑配置文件 /etc/mongod.conf 并相应地修改以下字段:

    • storage.dbPath 以指定新的数据目录路径(例如 /some/data/directory)
    • systemLog.path 以指定新的日志文件路径(例如 /some/log/directory/mongod.log)
  • 确保运行 MongoDB 的用户有权访问这些非默认目录:

    1
    sudo chown -R mongod:mongod <directory>

    如果更改运行 MongoDB 进程的用户,则必须授予新用户访问这些目录的权限。

  • 配置 SELinux

配置 SELinux

Configure SELinux

管理 mongod

请按照以下步骤在系统上运行 MongoDB Community Edition。这些说明假定你使用的是默认设置。

要运行和管理 mongod 进程,你将使用操作系统的内置初始化系统。Linux 的最新版本趋向于使用 systemd(使用 systemctl 命令),而 Linux 的较早版本趋向于使用 System V init(使用 service 命令)。

以 systemd(使用 systemctl 命令)为例:

  • 启动 mongod

    1
    sudo systemctl start mongod

    如果启动 mongod 时收到与以下类似的错误:

    Failed to start mongod.service: Unit mongod.service not found.

    首先运行以下命令:

    1
    sudo systemctl daemon-reload

    然后再次运行上面的启动命令。

  • 验证 MongoDB 是否已成功启动

    1
    sudo systemctl status mongod

    你可以选择执行以下命令来确保 MongoDB 在系统启动时启动:

    1
    sudo systemctl enable mongod
  • 停止 mongod

    1
    sudo systemctl stop mongod
  • 重启 mongod

    1
    sudo systemctl restart mongod

    你可以通过查看 /var/log/mongodb/mongod.log 文件中的输出来跟踪错误或重要消息的进程状态。

  • 使用 MongoDB

    在与 mongod 相同的主机上启动 mongo shell,你可以在没有任何命令行选项的情况下运行 mongo shell,这将使用默认端口 27017 连接到在本地主机上运行的 mongod:

    1
    mongo

    有关使用 mongo shell 连接的更多信息,例如连接到在其他主机和/或端口上运行的 mongod 实例,请参阅 mongo Shell

卸载 MongoDB 社区版本

要从系统中完全删除 MongoDB,必须删除 MongoDB 应用程序本身,配置文件以及所有包含数据和日志的目录。以下部分将指导你完成必要的步骤:

WARNING

This process will completely remove MongoDB, its configuration, and all databases. This process is not reversible, so ensure that all of your configuration and data is backed up before proceeding.

  • 停止 mongod

    1
    sudo service mongod stop
  • 删除 MongoDB 包

    1
    sudo yum erase $(rpm -qa | grep mongodb-org)
  • 删除数据和日志目录

    1
    2
    sudo rm -r /var/log/mongodb
    sudo rm -r /var/lib/mongo

References

https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/