我最近将 Ubuntu 14 服务器升级到 16,现在无法启动 MongoDB 服务。
我正在使用 MongoDB 3.4,来自 Mongo 的 Xenial PPAhttp://repo.mongodb.org/apt/ubuntuxenial/mongodb-org/3.4。
如果我运行:
sudo rm -Rf /var/log/mongodb/*
sudo service mongodb start
然后等待几分钟,/var/log/mongodb/mongodb.log
我就会看到:
2018-02-06T17:42:07.322+0000 [initandlisten] exception in initAndListen: 28574 Cannot start server. Detected data files in /var/lib/mongodb created by storage engine 'wiredTiger'. The configured storage engine is 'mmapv1'., terminating
我假设默认存储引擎在版本之间发生了变化,从“wiredTiger”变为“mmapv1”?如何将存储引擎重新设置为“wiredTiger”?
如果我添加:
storage:
dbPath: /var/lib/mongodb
journal:
enabled: true
engine: wiredTiger
到我的/etc/mongod.conf
,我得到了同样的错误。如果我尝试将其添加到我的/etc/mongodb.conf
,我得到错误:
Error parsing INI config file: the options configuration file contains an invalid line 'storage:'
答案1
根据参考文档,存储部分应该是这样的:
engine: <string>
mmapv1:
preallocDataFiles: <boolean>
nsSize: <int>
quota:
enforced: <boolean>
maxFilesPerDB: <int>
smallFiles: <boolean>
journal:
debugFlags: <int>
commitIntervalMs: <num>
wiredTiger:
engineConfig:
cacheSizeGB: <number>
journalCompressor: <string>
directoryForIndexes: <boolean>
collectionConfig:
blockCompressor: <string>
indexConfig:
prefixCompression: <boolean>
您的代码看起来略有不同。您可以尝试更改下面代码片段的部分以进行测试,看看它是否启动。此代码片段目前正在 mongo 3.4 服务器上运行:
storage:
dbPath: /my/data/path
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
此外,如果此方法无效,并且您仍然收到解析 INI 文件的错误,您可能需要对照参考文档检查整个文件。我建议您尝试运行mongodb -vvv -f /path/to/config
以查看 mongodb 是否仍在使用您的配置文件。