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
大多数类 Unix 操作系统都会限制进程可以使用的系统资源。 这些限制可能会对MongoDB操作产生负面影响,应该进行调整。 有关平台的建议设置,请参阅自管理部署的 UNIX ulimit设置。
注意 如果打开文件数的 ulimit 值低于 64000,MongoDB 会生成启动警告。
默认情况下,MongoDB 使用 mongod
用户帐户运行,并且使用以下默认目录:
/var/lib/mongo
(数据目录)
/var/log/mongodb
(日志目录)
软件包管理器在安装过程中创建默认目录。所有者和群组名称是mongod
。
要使用除默认目录外的数据目录和/或日志目录:
storage.dbPath 指定新的数据目录路径(例如/some/data/directory)
systemLog.path 以指定新的日志文件路径(例如 /some/log/directory/mongod.log)
确保运行 MongoDB 的用户有权访问这些目录:
sudo chown -R mongod:mongod <directory>
您可以通过发出以下命令来启动 mongod 进程:
sudo systemctl start mongod
如果收到类似下方的错误(在启动 mongod 时):
Failed to start mongod.service: Unit mongod.service not found.
首先运行以下命令:
sudo systemctl daemon-reload
然后再次运行上面的启动命令。
您可以通过发出以下命令来验证 mongod 进程已成功启动:
sudo systemctl status mongod
您可以通过选择执行以下命令,来确保 MongoDB 将在系统 重新启动后启动:
sudo systemctl enable mongod
您可以根据需要,通过发出以下命令来停止 mongod 进程:
sudo systemctl stop mongod
您可以通过发出以下命令来重启 mongod 进程:
sudo systemctl restart mongod
通过观察 /var/log/mongodb/mongod.log
文件中的输出,可以跟踪错误或重要消息的进程状态。
验证安装,连接到 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 无法初始化副本集,除非将此值设为有效的网络接口。
该值可通过以下任一方式配置:
bindIp
--bind_ip
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
⚠️ 常见报错点 :临时 socket 文件
# 删除旧 socket 文件
sudo rm -f /tmp/mongodb-*.sock
本文由 systemofdown 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。