CentOS7 安装MongoDB Community Edition 4.4

centos7 运维 · systemofdown · 于 6天前 发布 · 52 次阅读

CentOS7是个非常经典的操作系统了,很多业务仍然运行在该系统上,现在需要新增MongoDB服务,最新版的MongoDB 8/9 官方是不支持的,查阅了一下介绍最兼容的也就是4.x了。

常用安装方式,包安装和Docker镜像安装,此文选用的包安装.

安装

配置源

添加源配置文件 vim /etc/yum.repos.d/MongoDB.repo ,以便直接使用 yum 来安装 MongoDB。

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

安装

要安装最新稳定版 MongoDB,请执行以下命令:

sudo yum install -y mongodb-org

运行

ulimit 配置

大多数类 Unix 操作系统都会限制进程可以使用的系统资源。 这些限制可能会对MongoDB操作产生负面影响,应该进行调整。 有关平台的建议设置,请参阅自管理部署的 UNIX ulimit设置

注意 如果打开文件数的 ulimit 值低于 64000,MongoDB 会生成启动警告。

目录路径

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

/var/lib/mongo(数据目录)

/var/log/mongodb(日志目录)

软件包管理器在安装过程中创建默认目录。所有者和群组名称是mongod

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

  1. 创建新目录。
  2. 编辑配置文件 /etc/mongod.conf 并相应修改以下字段:
  • storage.dbPath 指定新的数据目录路径(例如/some/data/directory)

  • systemLog.path 以指定新的日志文件路径(例如 /some/log/directory/mongod.log)

确保运行 MongoDB 的用户有权访问这些目录:

sudo chown -R mongod:mongod <directory>

管理

1. 启动 MongoDB。

您可以通过发出以下命令来启动 mongod 进程:

sudo systemctl start mongod

如果收到类似下方的错误(在启动 mongod 时):

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

首先运行以下命令:

sudo systemctl daemon-reload

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

2. 验证 MongoDB 是否已成功启动。

您可以通过发出以下命令来验证 mongod 进程已成功启动:

sudo systemctl status mongod

您可以通过选择执行以下命令,来确保 MongoDB 将在系统 重新启动后启动:

sudo systemctl enable mongod

3. 停止 MongoDB。

您可以根据需要,通过发出以下命令来停止 mongod 进程:

sudo systemctl stop mongod

4. 重启 MongoDB。

您可以通过发出以下命令来重启 mongod 进程:

sudo systemctl restart mongod

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

5. 开始使用 MongoDB。

验证安装,连接到 MongoDB 命令行,输入mongo

# mongo
MongoDB shell version v4.4.29
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("c22ed011-c32f-4bb5-9359-157b6331ce6d") }
MongoDB server version: 4.4.29
---
The server generated these startup warnings when booting: 
        2025-06-24T13:37:32.060+08:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem
        2025-06-24T13:37:32.642+08:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
        2025-06-24T13:37:32.642+08:00: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. We suggest setting it to 'never'
        2025-06-24T13:37:32.642+08:00: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. We suggest setting it to 'never'
---
>

然后输入db.version()测试连接,显示版本号即成功

> db.version()
4.4.29
> 

访问

默认绑定本地主机

默认情况下,MongoDB 会以将 bindIp 设为 127.0.0.1 来启动,从而绑定到本地主机网络接口。这意味着 mongod 只能接受来自同一计算机上运行的客户端的连接。远程客户端无法连接到 mongod,且 mongod 无法初始化副本集,除非将此值设为有效的网络接口。

访问配置

该值可通过以下任一方式配置:

  • 在 MongoDB 配置文件中使用 bindIp
  • 通过命令行参数 --bind_ip

卸载

1. 完全移除现有安装

sudo systemctl stop mongod
sudo yum remove -y mongodb-org*
sudo rm -rf /var/lib/mongo /var/log/mongodb /var/run/mongodb
sudo rm -f /etc/mongod.conf /usr/lib/systemd/system/mongod.service

2. 删除可能残留的文件

⚠️ 常见报错点 :临时 socket 文件

# 删除旧 socket 文件
sudo rm -f /tmp/mongodb-*.sock

本文由 systemofdown 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。

共收到 0 条回复
没有找到数据。
添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册