在Rocky Linux服务器上安装并配置MongoDB,最稳妥的方案是通过官方YUM源进行RPM包安装,随后配置systemd服务并调整防火墙规则,即可在几分钟内获得一个生产可用的数据库环境。
对于许多从CentOS迁移过来的运维人员来说,Rocky Linux作为RHEL的下游发行版,其兼容性和稳定性备受推崇,而MongoDB作为文档型数据库的代表,在处理非结构化数据和高并发读写场景下表现优异,将两者结合,既能享受企业级Linux的稳定性,又能发挥NoSQL的灵活性,本文将直接切入实操,跳过冗长的理论铺垫,带你一步步完成从系统准备到服务启停的全过程。
Rocky Linux服务器安装MongoDB前的环境准备
在动手安装之前,确保你的服务器处于一个干净且更新的状态是至关重要的,这不仅能避免依赖冲突,还能确保系统安全补丁的完整性,业内专家指出,基础环境的整洁度直接影响后续服务的稳定性。
系统更新与基础依赖检查
你需要通过SSH连接到你的Rocky Linux服务器,执行以下命令来更新系统软件包,这一步虽然简单,但常被新手忽略,导致后续安装出现版本不兼容问题。
sudo dnf update -y
确认系统中是否安装了必要的依赖工具,MongoDB的安装包通常需要curl、gnupg以及lsof等工具的支持,如果提示找不到命令,请先安装它们:
sudo dnf install -y curl gnupg lsof
创建MongoDB专用用户
出于安全考虑,不建议使用root用户直接运行MongoDB进程,创建一个专用的系统用户是最佳实践,这个用户将拥有对MongoDB数据目录的读写权限,但无法访问系统中的其他敏感文件。
sudo groupadd mongodb sudo useradd -r -g mongodb -s /bin/false mongodb
执行完上述命令后,你的系统已经具备了安装MongoDB的基础条件,我们需要配置软件源。
Rocky Linux服务器安装MongoDB数据库详细步骤
目前主流的MongoDB版本是7.0或8.0系列,为了获得最佳的性能支持和长期维护,建议安装最新的稳定版,通过官方YUM源安装,可以确保自动获取安全更新。
配置MongoDB YUM仓库
我们需要创建一个仓库文件,告诉dnf从哪里下载MongoDB的安装包,使用编辑器创建文件/etc/yum.repos.d/mongodb-org-7.0.repo。
sudo tee /etc/yum.repos.d/mongodb-org-7.0.repo << EOF [mongodb-org-7.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/7.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-7.0.asc EOF
这里需要注意,如果你使用的是Rocky Linux 9,请将路径中的redhat/8修改为redhat/9,以确保架构匹配。
执行安装命令
仓库配置完成后,即可执行安装,这条命令会拉取MongoDB的核心组件、shell工具以及图形化管理界面。
sudo dnf install -y mongodb-org
安装过程中,系统会提示导入GPG密钥,输入y确认即可,安装完成后,MongoDB的二进制文件通常位于/usr/bin/目录下,配置文件位于/etc/mongod.conf。
Rocky Linux服务器配置MongoDB数据库核心参数
安装只是第一步,正确的配置才能让数据库在Rocky Linux环境下高效、安全地运行,特别是对于Rocky Linux 9 安装MongoDB的用户,SELinux策略可能需要额外调整。
修改配置文件
主要的配置文件是/etc/mongod.conf

,使用vi或nano打开它,你需要关注以下几个关键部分:
- 网络绑定:默认情况下,MongoDB只监听
0.0.1,如果你需要从其他服务器连接,需要将bindIp修改为0.0.0或特定的内网IP,但在生产环境中,强烈建议仅绑定内网IP,并通过SSH隧道或防火墙限制访问。 - 日志路径:确认
systemLog.destination指向/var/log/mongodb/mongod.log,并设置合适的日志滚动策略,避免磁盘被日志占满。 - 存储引擎:默认使用WiredTiger引擎,这是最适合大多数场景的选择,除非你有特殊的性能调优需求,否则无需更改
storage.dbPath和storage.wiredTiger.engineConfig。
SELinux与防火墙配置
Rocky Linux默认启用了SELinux,这可能会阻止MongoDB访问其数据目录或监听端口。
如果SELinux处于Enforcing模式,你需要执行以下命令来允许MongoDB运行:
sudo setsebool -P mongod_connect_any 1 sudo semanage fcontext -a -t mongod_db_t "/var/lib/mongo(/.)?" sudo restorecon -Rv /var/lib/mongo
确保防火墙允许27017端口(MongoDB默认端口)的访问,如果是内网使用,建议限制源IP:
sudo firewall-cmd --permanent --add-port=27017/tcp sudo firewall-cmd --reload
Rocky Linux服务器启动MongoDB数据库服务
配置完成后,启动服务并验证其运行状态,使用systemd管理服务是最标准的方式。
启动与设置开机自启
执行以下命令启动MongoDB服务:
sudo systemctl start mongod
为了确保持久化,设置开机自启:
sudo systemctl enable mongod
验证服务状态
检查服务是否正常运行:
sudo systemctl status mongod
如果看到绿色的active (running)字样,说明服务已启动,你可以通过查看日志来确认是否有错误信息:
sudo tail -f /var/log/mongodb/mongod.log
在日志末尾,你应该能看到类似[initandlisten] waiting for connections on port 27017的信息,这表示数据库已经准备好接受连接。
常见问题与Q&A
Rocky Linux服务器安装MongoDB后无法远程连接怎么办?
首先检查mongod.conf中的bindIp是否包含服务器公网IP或0.0.0,确认Rocky Linux的防火墙是否放行了27017端口,检查云服务商的安全组规则,确保入站规则允许该端口的TCP流量,多数情况下,问题出在防火墙或云安全组层面,而非MongoDB本身。
如何备份MongoDB数据库?
推荐使用mongodump工具进行逻辑备份,在终端执行以下命令:
mongodump --out /backup/mongodb/$(date +%F)
这将把当前所有数据库备份到指定目录,恢复时使用mongorestore命令即可,对于生产环境,建议结合定时任务脚本,定期将备份文件同步到对象存储或异地服务器。
Rocky Linux服务器配置MongoDB时内存占用过高如何处理?
MongoDB默认会利用尽可能多的内存作为缓存,如果服务器内存有限,可以在mongod.conf中限制WiredTiger缓存大小,在storage.wiredTiger.engineConfig下添加cacheSizeGB: 1,限制其使用1GB内存,确保系统有足够的Swap空间,并在监控中关注RSS内存指标,避免OOM Killer终止进程。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/408399.html


