我正在尝试将单节点mongodb集群从3.4升级到3.6。
一切正常,但我无法将功能兼容性更改为3.6。
当我尝试-
db.adminCommand({setFeatureCompatibilityVersion:“'3.6'”})
我收到一条错误消息-
{
"ok" : 0,
"errmsg" : "Invalid command argument. Expected '3.4' or '3.2', found '3.6' in: { setFeatureCompatibilityVersion: \"'3.6'\" }. See http://dochub.mongodb.org/core/3.4-feature-compatibility.",
"code" : 2,
"codeName" : "BadValue"
}
答案 0 :(得分:0)
由于某种原因,我的数据库版本未更新,可能是某些依赖关系搞砸了。我使用purge选项卸载了当前安装,然后重新安装了mongodb,它解决了该问题。
如果使用清除选项,请不要忘记为配置文件创建备份。
答案 1 :(得分:0)
作为官方定义:它启用或禁用用于保留与MongoDB的早期版本(*表示比当前版本更低的版本)不兼容的数据的功能。因此,例如,如果我安装了mongo3.6,则必须担心以前的版本,而不是当前的版本。您是否正在尝试为自己的同一版本设置兼容性?该错误还表明您的系统仅需要映射以前的版本。即版本低于您当前安装的版本。
答案 2 :(得分:0)
您似乎发布了带有双引号和单引号的错误(使您发布的错误消息有意义:-))。
db.adminCommand( { setFeatureCompatibilityVersion:"'3.6'" } )
应该是:
db.adminCommand( { setFeatureCompatibilityVersion:"3.6" } )
此外,您可能想从这些instructions中了解有关“ FCV”的更多信息。
答案 3 :(得分:-1)
您可以尝试遵循此网站Upgrade a Standalone to 3.6上的说明
,如果您使用的是Ubunt OS,请尝试以下操作:
步骤1:停止旧的Mongod服务器
运行“ sudo systemctl stop mongod
”,MongoDB将停止。
步骤2:导入MongoDB公钥
运行“ sudo apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
”,密钥将为您导入!
第3步:更新apt / MongoDB的列表文件
要删除旧列表,请运行“ sudo rm /etc/apt/sources.list.d/mongodb-org-3.4.list
”
现在,用“ echo “deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse” | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
”添加新的
运行“ sudo apt-get update
”以更新apt的列表。
第4步:升级MongoDB安装
最简单的方法是运行“ sudo apt-get upgrade -y
”,这将使apt更新系统中所有过时的软件包。好玩!
如果它要求替换/etc/mongod.conf中的文件,只需说“否”以保持设置不变。
第5步:启动MongoDB
运行“ sudo systemctl start mongod
”,我们就可以运行了。就这么简单!