我需要在我的环境中将mongodb从3.2升级到3.6。对于这个过程,我首先按照建议从3.2迁移到3.4。成功迁移到3.4后,我开始迁移到3.6我无法启动mongod。检查日志文件时发现错误如: 重要提示:升级问题:在尝试升级到3.6之前,需要将数据文件完全升级到3.4版;有关详细信息,请参阅http://dochub.mongodb.org/core/3.6-upgrade-fcv。
MY Mongod.conf
systemLog: 目的地:档案 logAppend:true 路径:/var/log/mongodb/mongod.log
存储: dbPath:/ var / lib / mongo 日志: enabled:true
processManagement: fork:true#fork并在后台运行 pidFilePath:/var/run/mongodb/mongod.pid #pidfile的位置
净: 港口:27017 bindIp:127.0.0.1
答案 0 :(得分:43)
我有类似的问题,我已将MongoDB 3.4中的 Ubuntu 16.04 升级到3.6但我错过了这一重要步骤
db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } )
然后我必须降级到3.4才能执行此操作然后再次升级到3.6。以下是详细步骤:
<强> 1。卸载3.6
备份/etc/mongod.conf
备份/etc/apt/sources.list.d/mongodb-org-3.6.listed
(重命名或将其移至另一个文件夹)
sudo apt-get update
sudo apt-get remove mongodb-org-mongos mongodb-org-server mongodb-org-shell mongodb-org-tools
<强> 2。重新安装3.4
检查文件夹/etc/apt/sources.list.d/
以查看此文件是否存在:mongodb-org-3.4.list
。
如果它不存在,您可以通过此命令重新创建:
echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
然后按apt-get
sudo apt-get update
sudo apt-get install -y mongodb-org
mongod --version
sudo systemctl start mongod
在我的情况下,命令systemctl start mongod
返回错误Failed to start mongod.service: Unit mongod.service not found
我通过这些命令解决了:
sudo systemctl enable mongod
sudo service mongod restart
sudo service mongod status
第3。执行非常重要的命令
降级到3.4后,运行此
mongo
MongoDB shell version v3.4.10
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.10
> db.adminCommand( { setFeatureCompatibilityVersion: "3.4" } )
{ "featureCompatibilityVersion" : "3.4", "ok" : 1 }
> exit
<强> 4。再次升级3.6
恢复此文件/etc/apt/sources.list.d/mongodb-org-3.6.listed
sudo apt-get update
sudo apt-get install mongodb-org-mongos mongodb-org-server mongodb-org-shell mongodb-org-tools
恢复/etc/mongod.conf
。现在,MongoDB 3.6开始没有任何问题
答案 1 :(得分:0)
如果您不关心丢失所有数据,则可以删除/data/db
文件夹的内容,该文件夹显然包含一些3.4格式的数据库。
然后重新启动mongod