Mongodb 在无意升级mongo版本后升级较旧的mongo数据库
在无意中升级了mongodb包(3.4.9->3.6.1)之后,有没有办法升级mongo数据库 根据mongo文档,作为升级的一部分,必须从Mongodb 在无意升级mongo版本后升级较旧的mongo数据库,mongodb,archlinux,Mongodb,Archlinux,在无意中升级了mongodb包(3.4.9->3.6.1)之后,有没有办法升级mongo数据库 根据mongo文档,作为升级的一部分,必须从mongocli工具设置featureCompatibilityVersion,但是,该工具需要一个运行的mongod数据库守护进程,如果mongodb软件包已升级且数据库未设置featureCompatibilityVersion标志,则不会运行 我在ArchLinux上,我在IgnorePkg中使用了mongodb,但它的依赖项boost libs和wi
mongo
cli工具设置featureCompatibilityVersion
,但是,该工具需要一个运行的mongod
数据库守护进程,如果mongodb软件包已升级且数据库未设置featureCompatibilityVersion
标志,则不会运行
我在ArchLinux上,我在IgnorePkg
中使用了mongodb,但它的依赖项boost libs
和wiredtiger
得到了升级。由于pacman缓存已经被清除,我自己编译了较旧版本的包,但运行mongodb一直失败,出现以下错误:
unsupported WiredTiger file version: this build only supports major/minor versions up to 1/0, and the file is version 2/0: WT_ERROR: non-specific WiredTiger error
我不知道这到底意味着什么(wiredtiger的问题版本是2.9.3-1,升级后的版本是2.9.3.20171205-2)
似乎我既不能降级也不能升级
其他cli工具(例如,
mongodump
)在没有正在运行的数据库的情况下也无法运行,是否存在其他可能性(一些wiredtiger
相关工具)?删除数据库并重新启动不是一个选项。我通过在一个系统上安装旧版本的mongodb解决了这个问题,对于这个系统来说,预打包(Windows 10,尽管官方声明包是针对Windows Server 2008的),复制数据库文件并不是一个问题(内容为/var/lib/mongodb
),使用--dbpath
参数(mongod--dbpath/path/to/dbfiles
)运行它,根据设置的设置兼容性标志,最后将db文件复制回服务器
我想知道一个更好的选择,但很高兴知道db文件可以轻松地转移到另一个系统,甚至是另一个体系结构(虽然db相对简单和小)。这里有类似的问题,无意中从
4.2.1
升级到4.4.3
,然后mongodb无法启动
最终工作解决方案:
4.4.3
)brew卸载mongodb社区
4.2.1
brew安装mongodb-community@4.2
- 目前:
brew服务运行mongodb-community@4.2
- 现在并设置为可引导:
brew服务启动mongodb-community@4.2
brew services
我也面临着同样的问题。我不敢相信这种情况有多愚蠢,但我很感激你的解决方案。我想试一试,看看它是否有效。呃。你能解释一下吗。我遇到了同样的问题,但这个解决方案对我不起作用。我有一个Mongo 3.4并升级了它(没有注意)到3.6没有标志。所以实际上Mongo 3.6无法启动,因为没有设置标志。3.4无法启动,因为db文件是3.6格式的…我试图获得另一个Mongo 3.4安装,将文件放入其中并启动“Mongo--dbpath”,但仍然无法启动smae错误(WiredTiger错误(-31802)如果在将db文件移动到另一台服务器后无法启动mongo,那么运行此操作的任何人都应该尝试此操作:mongo--dbpath--repair