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)
すべてのモジュール (mongodb-org-server、mongodb-org-mongos、mongodb-org-shell、mongodb-org-tools) に対して sudo yum downgrade... コマンドを使用して MongoDB を 3.0.5 (その後 3.0.4、さらに 3.0.0 まで) にダウングレードしようとしましたが、mongod を起動しようとすると、依然として同じエラーが発生します。
MongoDB を C および C++ ライブラリで動作させるには、他に何かする必要がありますか? このバージョンの OS でサポートできる最大値は、GLIBCXX_3.4.13、GLIBC_3.4.13、および CXXABI_1.3.3 です。
答え1
新しい VM を起動し、正しいバージョンの MongoDB とその依存関係をインストールします。次に、古いマシンから新しいマシンにデータをコピーします。
どのようにアップグレードされたか分からない場合は、古いシステムでいつアップグレードされた/var/log/yum.log
かを調べてください。次に、すべてのシステム cron ジョブを調べてください。決定的な証拠は yumcron です。
もちろん、yumcron を無効にすることも、/etc/yum.conf を編集して特定のパッケージを除外することもできます。