我在 Hyper-V 上运行 CentOS 6.7,这意味着我无法就地升级到 7.0。今天我重启了服务器,在上次重启和今天之间的某个时间,我的 MongoDB 安装升级到了最新版本 (3.0.6)。我不知道是谁做的更新,但现在它需要一些当前版本的 CentOS 无法支持的库,如下所示:
$ sudo bin/mongod --storageEngine wiredTiger --dbPath=/media/DataExt/mongodb-wiredtiger-data/
bin/mongod: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by bin/mongod)
bin/mongod: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by bin/mongod)
bin/mongod: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by bin/mongod)
bin/mongod: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by bin/mongod)
bin/mongod: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by bin/mongod)
我尝试使用 sudo yum downgrade... 命令对所有模块(mongodb-org-server、mongodb-org-mongos、mongodb-org-shell 和 mongodb-org-tools)将 MongoDB 降级到 3.0.5(然后是 3.0.4,然后一直到 3.0.0),但当我尝试启动 mongod 时仍然出现相同的错误。
我还需要做些什么才能让 MongoDB 与我拥有的 C 和 C++ 库一起工作吗?我可以支持此版本操作系统的最大版本是 GLIBCXX_3.4.13、GLIBC_3.4.13 和 CXXABI_1.3.3。
答案1
启动新的虚拟机并安装正确版本的 MongoDB 及其依赖项。然后将数据从旧机器复制到新机器。
如果你不知道它是如何升级的,那么在旧系统上查看/var/log/yum.log
它发生的时间。然后查看所有系统 cron 作业,yumcron 就是确凿的证据。
您显然可以禁用 yumcron 或者可以编辑 /etc/yum.conf 来排除某些软件包。