实战记录在 Rocky Linux 9.6 上“强行”离线安装 MongoDB 4.4.12导读由于应用架构限制必须使用 MongoDB 4.4但生产环境已升级至最新的 Rocky Linux 9.6。官方不再提供 RHEL 9 的 4.4 版本 RPM 包怎么办本文带你通过“借力 EL8 包 补全 OpenSSL 依赖”的方式完美解决跨版本离线安装难题。 背景与痛点近期在维护一套遗留系统时遇到了一个典型的“版本错配”问题操作系统Rocky Linux 9.6 (基于 RHEL 9)数据库需求MongoDB 4.4.12 (因代码兼容性无法升级至 5.0)网络环境纯内网必须离线安装核心矛盾MongoDB 官方仓库中4.4 系列最高只支持到 RHEL 8 (el8)而 Rocky 9 默认使用的是 OpenSSL 3.0MongoDB 4.4 却强依赖 OpenSSL 1.1。直接安装el8的包会因缺少libssl.so.1.1而失败。经过调研与测试我们找到了一套成熟的**“曲线救国”**方案强制安装 EL8 的 RPM 包并手动注入兼容版的 OpenSSL 1.1 库。 第一步准备离线安装包在有网络的机器上我们需要下载两类资源MongoDB 4.4.12 (el8 版本)OpenSSL 1.1.1k (el8 版本)——这是成功的关键1. 下载 MongoDB 4.4.12访问 MongoDB 官方 RHEL 8 仓库下载以下 5 个文件BASE_URLhttps://repo.mongodb.org/yum/redhat/8/mongodb-org/4.4/x86_64/RPMS/VER4.4.12wget${BASE_URL}mongodb-org-server-${VER}-1.el8.x86_64.rpmwget${BASE_URL}mongodb-org-shell-${VER}-1.el8.x86_64.rpmwget${BASE_URL}mongodb-org-mongos-${VER}-1.el8.x86_64.rpmwget${BASE_URL}mongodb-org-tools-${VER}-1.el8.x86_64.rpmwget${BASE_URL}mongodb-org-${VER}-1.el8.x86_64.rpm2. 下载 OpenSSL 1.1 兼容库由于 CentOS 8 源已归档我们从阿里云镜像或 Vault 下载最终稳定版 (1.1.1k-5或更高)# 示例从阿里云镜像下载ALIYUN_BASEhttps://mirrors.aliyun.com/centos/8.5.2111/BaseOS/x86_64/os/Packages/wget${ALIYUN_BASE}openssl-libs-1.1.1k-5.el8_5.x86_64.rpmwget${ALIYUN_BASE}openssl-1.1.1k-5.el8_5.x86_64.rpm✅ 文件清单验证打包前请确认你的目录中有以下 7 个文件与你实际下载的版本号可能微调但必须包含这 7 个[rootk8s-node06 mongo44_bundle]# ls -lh-rw-r--r--.1root root10900Jan222022mongodb-org-4.4.12-1.el8.x86_64.rpm -rw-r--r--.1root root17680404Jan222022mongodb-org-mongos-4.4.12-1.el8.x86_64.rpm -rw-r--r--.1root root22874236Jan222022mongodb-org-server-4.4.12-1.el8.x86_64.rpm -rw-r--r--.1root root14572304Mar2415:13 mongodb-org-shell-4.4.12-1.el8.x86_64.rpm -rw-r--r--.1root root10784Mar2415:13 mongodb-org-tools-4.4.12-1.el8.x86_64.rpm -rw-r--r--.1root root725656Mar2415:24 openssl-1.1.1k-5.el8_5.x86_64.rpm -rw-r--r--.1root root1537572Mar2415:24 openssl-libs-1.1.1k-5.el8_5.x86_64.rpmmongo44_bundle.tar.gz将上述文件打包上传至 Rocky Linux 9.6 服务器即可。️ 第二步离线安装实操1. 优先安装 OpenSSL 1.1注意顺序必须先安装 OpenSSL否则 MongoDB 启动时会报libssl.so.1.1: cannot open shared object file。由于是跨版本安装需使用--nodeps --force忽略依赖检查。# 安装 libsrpm-ivh--nodeps--forceopenssl-libs-1.1.1k-5.el8_5.x86_64.rpm# 安装主程序rpm-ivh--nodeps--forceopenssl-1.1.1k-5.el8_5.x86_64.rpm# 刷新动态链接库缓存至关重要ldconfig# 验证是否生效ldconfig-p|greplibssl.so.1.1# 若有输出说明系统已识别到旧版库2. 安装 MongoDB使用dnf本地安装它会自动处理 5 个 MongoDB RPM 包之间的依赖顺序。dnfinstall-y./*.rpm注如果 dnf 报错依赖冲突可退而求其次使用rpm -ivh --nodeps mongodb-org*.rpm强制安装。3. 初始化权限mkdir-p/var/lib/mongo /var/log/mongodbchown-Rmongod:mongod /var/lib/mongo /var/log/mongodb restorecon-Rv/var/lib/mongo /var/log/mongodb⚙️ 第三步配置远程访问 (Navicat 连接必备)默认配置仅允许本地连接若需使用 Navicat 等工具远程管理需执行以下操作1. 修改绑定 IP编辑/etc/mongod.confnet:port:27017bindIp:0.0.0.0# 改为 0.0.0.0 允许所有 IP或指定具体 IP重启服务systemctl restart mongod2. 创建管理员用户启动服务后先在本地登录创建用户mongo use admin db.createUser({user:admin, pwd:YourStrongPassword, roles:[{role:root, db:admin}]})exit然后再次编辑/etc/mongod.conf开启认证security:authorization:enabled3. 重启并开放防火墙# 重启服务systemctl restart mongod# 开放 27017 端口或关闭防火墙firewall-cmd--permanent--add-port27017/tcp firewall-cmd--reload 验证与总结此时打开你电脑上的Navicat for MongoDBHost:192.168.4.6(你的服务器 IP)Port:27017User/Password: 刚才创建的 admin 账号点击“测试连接”应该能顺利看到绿色的成功提示✅ 核心经验总结依赖隔离Rocky 9 自带 OpenSSL 3.0我们通过并行安装 EL8 的 OpenSSL 1.1 库实现了“新旧共存”互不干扰。版本选择尽量下载 CentOS 8 生命周期内的最终版本如1.1.1k-5或-19稳定性更好。适用场景此方法适用于必须保留旧版数据库且无法升级应用代码的过渡期场景。温馨提示由于是非官方支持的跨版本安装建议在进行系统大版本升级dnf upgrade时注意保护已安装的openssl-1.1.1k包不被误删。温馨提示由于网络环境或文件存储等因素若相关文件或图片链接暂时无法访问您也可以通过访问张师傅的好来斯技术博客获取更多相关资源和最新信息。本篇文章原始链接https://www.howlaisi.com/categories/mongo/shi-zhan-ji-lu-zai-rocky-linux-9.6-shang-qiang-xing-chi-xian-an-zhuang-mongodb-4.4.12发布平台HOWLAISICSDN微信公众号
[特殊字符] 实战记录:在 Rocky Linux 9.6 上“强行”离线安装 MongoDB 4.4.12
实战记录在 Rocky Linux 9.6 上“强行”离线安装 MongoDB 4.4.12导读由于应用架构限制必须使用 MongoDB 4.4但生产环境已升级至最新的 Rocky Linux 9.6。官方不再提供 RHEL 9 的 4.4 版本 RPM 包怎么办本文带你通过“借力 EL8 包 补全 OpenSSL 依赖”的方式完美解决跨版本离线安装难题。 背景与痛点近期在维护一套遗留系统时遇到了一个典型的“版本错配”问题操作系统Rocky Linux 9.6 (基于 RHEL 9)数据库需求MongoDB 4.4.12 (因代码兼容性无法升级至 5.0)网络环境纯内网必须离线安装核心矛盾MongoDB 官方仓库中4.4 系列最高只支持到 RHEL 8 (el8)而 Rocky 9 默认使用的是 OpenSSL 3.0MongoDB 4.4 却强依赖 OpenSSL 1.1。直接安装el8的包会因缺少libssl.so.1.1而失败。经过调研与测试我们找到了一套成熟的**“曲线救国”**方案强制安装 EL8 的 RPM 包并手动注入兼容版的 OpenSSL 1.1 库。 第一步准备离线安装包在有网络的机器上我们需要下载两类资源MongoDB 4.4.12 (el8 版本)OpenSSL 1.1.1k (el8 版本)——这是成功的关键1. 下载 MongoDB 4.4.12访问 MongoDB 官方 RHEL 8 仓库下载以下 5 个文件BASE_URLhttps://repo.mongodb.org/yum/redhat/8/mongodb-org/4.4/x86_64/RPMS/VER4.4.12wget${BASE_URL}mongodb-org-server-${VER}-1.el8.x86_64.rpmwget${BASE_URL}mongodb-org-shell-${VER}-1.el8.x86_64.rpmwget${BASE_URL}mongodb-org-mongos-${VER}-1.el8.x86_64.rpmwget${BASE_URL}mongodb-org-tools-${VER}-1.el8.x86_64.rpmwget${BASE_URL}mongodb-org-${VER}-1.el8.x86_64.rpm2. 下载 OpenSSL 1.1 兼容库由于 CentOS 8 源已归档我们从阿里云镜像或 Vault 下载最终稳定版 (1.1.1k-5或更高)# 示例从阿里云镜像下载ALIYUN_BASEhttps://mirrors.aliyun.com/centos/8.5.2111/BaseOS/x86_64/os/Packages/wget${ALIYUN_BASE}openssl-libs-1.1.1k-5.el8_5.x86_64.rpmwget${ALIYUN_BASE}openssl-1.1.1k-5.el8_5.x86_64.rpm✅ 文件清单验证打包前请确认你的目录中有以下 7 个文件与你实际下载的版本号可能微调但必须包含这 7 个[rootk8s-node06 mongo44_bundle]# ls -lh-rw-r--r--.1root root10900Jan222022mongodb-org-4.4.12-1.el8.x86_64.rpm -rw-r--r--.1root root17680404Jan222022mongodb-org-mongos-4.4.12-1.el8.x86_64.rpm -rw-r--r--.1root root22874236Jan222022mongodb-org-server-4.4.12-1.el8.x86_64.rpm -rw-r--r--.1root root14572304Mar2415:13 mongodb-org-shell-4.4.12-1.el8.x86_64.rpm -rw-r--r--.1root root10784Mar2415:13 mongodb-org-tools-4.4.12-1.el8.x86_64.rpm -rw-r--r--.1root root725656Mar2415:24 openssl-1.1.1k-5.el8_5.x86_64.rpm -rw-r--r--.1root root1537572Mar2415:24 openssl-libs-1.1.1k-5.el8_5.x86_64.rpmmongo44_bundle.tar.gz将上述文件打包上传至 Rocky Linux 9.6 服务器即可。️ 第二步离线安装实操1. 优先安装 OpenSSL 1.1注意顺序必须先安装 OpenSSL否则 MongoDB 启动时会报libssl.so.1.1: cannot open shared object file。由于是跨版本安装需使用--nodeps --force忽略依赖检查。# 安装 libsrpm-ivh--nodeps--forceopenssl-libs-1.1.1k-5.el8_5.x86_64.rpm# 安装主程序rpm-ivh--nodeps--forceopenssl-1.1.1k-5.el8_5.x86_64.rpm# 刷新动态链接库缓存至关重要ldconfig# 验证是否生效ldconfig-p|greplibssl.so.1.1# 若有输出说明系统已识别到旧版库2. 安装 MongoDB使用dnf本地安装它会自动处理 5 个 MongoDB RPM 包之间的依赖顺序。dnfinstall-y./*.rpm注如果 dnf 报错依赖冲突可退而求其次使用rpm -ivh --nodeps mongodb-org*.rpm强制安装。3. 初始化权限mkdir-p/var/lib/mongo /var/log/mongodbchown-Rmongod:mongod /var/lib/mongo /var/log/mongodb restorecon-Rv/var/lib/mongo /var/log/mongodb⚙️ 第三步配置远程访问 (Navicat 连接必备)默认配置仅允许本地连接若需使用 Navicat 等工具远程管理需执行以下操作1. 修改绑定 IP编辑/etc/mongod.confnet:port:27017bindIp:0.0.0.0# 改为 0.0.0.0 允许所有 IP或指定具体 IP重启服务systemctl restart mongod2. 创建管理员用户启动服务后先在本地登录创建用户mongo use admin db.createUser({user:admin, pwd:YourStrongPassword, roles:[{role:root, db:admin}]})exit然后再次编辑/etc/mongod.conf开启认证security:authorization:enabled3. 重启并开放防火墙# 重启服务systemctl restart mongod# 开放 27017 端口或关闭防火墙firewall-cmd--permanent--add-port27017/tcp firewall-cmd--reload 验证与总结此时打开你电脑上的Navicat for MongoDBHost:192.168.4.6(你的服务器 IP)Port:27017User/Password: 刚才创建的 admin 账号点击“测试连接”应该能顺利看到绿色的成功提示✅ 核心经验总结依赖隔离Rocky 9 自带 OpenSSL 3.0我们通过并行安装 EL8 的 OpenSSL 1.1 库实现了“新旧共存”互不干扰。版本选择尽量下载 CentOS 8 生命周期内的最终版本如1.1.1k-5或-19稳定性更好。适用场景此方法适用于必须保留旧版数据库且无法升级应用代码的过渡期场景。温馨提示由于是非官方支持的跨版本安装建议在进行系统大版本升级dnf upgrade时注意保护已安装的openssl-1.1.1k包不被误删。温馨提示由于网络环境或文件存储等因素若相关文件或图片链接暂时无法访问您也可以通过访问张师傅的好来斯技术博客获取更多相关资源和最新信息。本篇文章原始链接https://www.howlaisi.com/categories/mongo/shi-zhan-ji-lu-zai-rocky-linux-9.6-shang-qiang-xing-chi-xian-an-zhuang-mongodb-4.4.12发布平台HOWLAISICSDN微信公众号