CentOS 7环境下如何正确安装配置MongoDB数据库?

在 CentOS 7 服务器上部署 MongoDB 数据库是一项常见且重要的任务,尤其对于需要高性能、可扩展性以及灵活数据模型的应用程序而言,MongoDB 作为一个基于文档的 NoSQL 数据库,因其易用性和强大的功能而广受欢迎,本文将为您提供一份详尽的、分步的指南,帮助您在 CentOS 7 系统上顺利完成 MongoDB Community Edition 的安装、基本配置以及安全加固。

CentOS 7环境下如何正确安装配置MongoDB数据库?

准备工作

在开始安装之前,请确保您具备以下条件:

  • 一台运行 CentOS 7 的服务器,拥有 root 权限或具有 sudo 权限的普通用户。
  • 稳定的网络连接,以便从官方仓库下载软件包。

第一步:配置 MongoDB Yum 仓库

通过配置官方的 Yum 仓库来安装 MongoDB 是最为推荐的方式,它能确保您获取到最新、最稳定的软件版本,并简化后续的更新和维护过程。

我们需要在 /etc/yum.repos.d/ 目录下创建一个以 .repo 结尾的仓库配置文件,这里以创建 mongodb-org-4.4.repo 文件为例(您可以根据需要替换为其他版本,如 5.0 或 6.0,只需修改文件名和内容中的版本号即可)。

使用您喜欢的文本编辑器(如 vinano)来创建并编辑该文件:

sudo vi /etc/yum.repos.d/mongodb-org-4.4.repo

粘贴到文件中,然后保存并退出:

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

这段配置文件定义了仓库的名称、基础 URL、GPG 密钥检查(用于验证软件包的完整性)以及 GPG 密钥的地址。

第二步:安装 MongoDB Community Edition

仓库配置完成后,我们就可以使用 yum 命令来安装 MongoDB 了,执行以下命令,yum 会自动处理所有依赖关系:

sudo yum install -y mongodb-org

-y 参数会自动回答“yes”,从而在安装过程中跳过确认提示,实现自动化安装,此命令将安装以下核心组件:

  • mongodb-org-server: MongoDB 数据库服务器守护进程。
  • mongodb-org-mongos: MongoDB Shard 进程。
  • mongodb-org-shell: MongoDB 交互式 Shell (mongosh)。
  • mongodb-org-tools: 包含一系列实用工具,如数据导入/导出工具。

第三步:启动并设置 MongoDB 开机自启

安装过程并不会自动启动 MongoDB 服务,您需要手动启动它,并将其设置为开机自启,以确保服务器重启后数据库能正常运行。

  1. 启动 MongoDB 服务

    sudo systemctl start mongod
  2. 设置开机自启

    sudo systemctl enable mongod
  3. 验证服务状态

    您可以使用以下命令来检查 MongoDB 服务是否正在成功运行:

    sudo systemctl status mongod

    如果输出中显示 active (running),则表示服务已成功启动。

第四步:验证安装并连接数据库

为了确认安装无误,我们可以通过 MongoDB Shell 连接到数据库实例。

在终端中输入以下命令:

CentOS 7环境下如何正确安装配置MongoDB数据库?

mongosh

如果连接成功,您将进入 MongoDB 的交互式 Shell 界面,提示符通常为 >,在 Shell 中,您可以执行一些简单的命令来验证:

  • 查看当前数据库版本:db.version()
  • 执行一个简单的 ping 命令测试连接:db.runCommand('ping')

如果这些命令都返回了预期的结果(如版本号和一个包含 “ok: 1” 的文档),那么恭喜您,MongoDB 已经成功安装并运行了,输入 exit 即可退出 Shell。

第五步:配置防火墙(可选,用于远程访问)

默认情况下,MongoDB 监听在本地回环地址(0.0.1)上,仅允许本地连接,如果您需要从其他服务器或应用程序远程访问此数据库,需要进行两项配置:修改网络绑定地址和配置防火墙规则。

警告: 开启远程访问会带来安全风险,请务必配合身份验证和网络安全策略(如 VPN)使用。

  1. 修改网络绑定
    编辑 MongoDB 的配置文件 /etc/mongod.conf

    sudo vi /etc/mongod.conf

    找到 net 部分,将 bindIp 的值修改为 0.0.0 或服务器的具体 IP 地址。0.0.0 表示监听所有网络接口。

    # network interfaces
    net:
      port: 27017
      bindIp: 0.0.0.0  # 修改为此值

    保存文件后,重启 MongoDB 服务使配置生效:

    sudo systemctl restart mongod
  2. 配置 CentOS 7 防火墙
    CentOS 7 默认使用 firewalld 作为防火墙管理工具,您需要开放 MongoDB 的默认端口 27017

    以下命令表格列出了所需操作:

命令 描述
sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent 永久地在 public 区域中开放 TCP 27017 端口
sudo firewall-cmd --reload 重新加载防火墙配置,使新规则立即生效

执行完这两条命令后,外部主机就可以通过网络访问您的 MongoDB 数据库了。

第六步:启用身份验证(强烈推荐)

为了保障数据库安全,启用身份验证是至关重要的一步,这将要求所有用户在连接和操作数据库前必须提供有效的用户名和密码。

  1. 创建管理员用户
    在未启用认证的情况下连接到数据库,并创建一个具有管理员权限的用户。

    mongosh

    在 Shell 中执行:

    use admin
    db.createUser({
      user: "myAdmin",
      pwd: passwordPrompt(), // 或者直接写入密码 'your_secure_password'
      roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
    })

    这将创建一个名为 myAdmin 的用户,该用户拥有管理任何数据库用户和读写任何数据库的权限。passwordPrompt() 会安全地提示您输入密码。

  2. 启用认证
    再次编辑 /etc/mongod.conf 文件,在文件末尾添加 security 部分:

    sudo vi /etc/mongod.conf
    security:
      authorization: enabled
  3. 重启服务
    保存配置文件后,重启 MongoDB 服务以启用身份验证。

    CentOS 7环境下如何正确安装配置MongoDB数据库?

    sudo systemctl restart mongod

至此,您的 MongoDB 数据库已经完成了安装、远程访问配置和安全加固,之后连接数据库时,就需要提供认证信息,

mongosh -u "myAdmin" -p --authenticationDatabase "admin"

相关问答 FAQs

问题 1:安装过程中提示 GPG 密钥验证失败怎么办?

解答: 这个错误通常意味着系统的 GPG 密钥环中没有 MongoDB 的公钥,导致 yum 无法验证软件包的签名,解决方法是手动导入 MongoDB 的官方 GPG 密钥,您可以执行以下命令来导入(请确保版本号与您在仓库文件中配置的一致):

sudo rpm --import https://www.mongodb.org/static/pgp/server-4.4.asc

执行完毕后,再次运行 sudo yum install -y mongodb-org 命令即可正常安装。

问题 2:忘记 MongoDB 管理员密码了,如何重置?

解答: 如果忘记了管理员密码,可以通过暂时禁用身份验证来重置,请按照以下安全步骤操作:

  1. 停止 MongoDB 服务
    sudo systemctl stop mongod

  2. 编辑配置文件,禁用认证
    打开 /etc/mongod.conf,找到 security.authorization: enabled 这一行,在前面加上 将其注释掉,或者直接删除整个 security 部分,保存文件。

  3. 重启 MongoDB 服务
    sudo systemctl start mongod

  4. 无密码连接并重置密码
    mongosh
    连接后,切换到 admin 数据库并使用 db.updateUser() 方法更新密码:

    use admin
    db.updateUser("myAdmin", { pwd: "new_secure_password" })

    "myAdmin" 替换为您的用户名,"new_secure_password" 替换为新的密码。

  5. 恢复认证并重启服务
    再次编辑 /etc/mongod.conf,取消对 security.authorization: enabled 的注释(或重新添加),保存文件,重启服务:
    sudo systemctl restart mongod

现在您就可以使用新密码重新连接数据库了。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-11 12:53
下一篇 2025-10-11 12:57

相关推荐

  • 如何在Linux环境下通过镜像部署Drupal网站?

    本文介绍了如何在Linux环境下通过镜像部署Drupal网站。内容包括服务器的准备工作、获取和配置Drupal镜像,以及启动并访问新部署的网站。适合有一定Linux操作经验的用户参考实施。

    2024-08-09
    006
  • 腾讯云centos 7如何初始化配置与安全加固?

    腾讯云CentOS 7作为企业级云服务的主流选择之一,凭借其稳定性、安全性及丰富的生态系统,广泛应用于各类业务场景,本文将围绕腾讯云CentOS 7的核心优势、典型应用场景及运维实践展开,帮助用户高效利用这一云平台,核心优势与特性腾讯云CentOS 7在性能与安全方面表现突出,其基于腾讯云全球分布式基础设施,提……

    2025-09-30
    001
  • 服务器 客户端 前景_客户端

    服务器和客户端是网络通信的两个重要组成部分。服务器提供数据和服务,而客户端则请求这些服务。随着技术的进步,客户端的前景将更加智能化、个性化和高效化。

    2024-07-08
    002
  • 佛山网站代运营服务如何助力企业实现数字化转型?

    佛山网站代运营服务为当地企业提供专业的网站管理、优化和推广解决方案。通过外包这一服务,企业能够专注于核心业务,同时确保其在线平台得到高效、持续的更新和维护,以提升网站流量、用户参与度及转化率。

    2024-07-26
    0015

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信