【发布时间】:2017-09-08 23:57:15
【问题描述】:
我有一个 AWS ubuntu 实例,我在其中升级了 a) ubuntu 版本(从 16.04 升级到 16.04.2)和 b) mongoDB 版本(从 3.2 升级到 3.4.3)。但是,当我这样做时,mongoDB 会取消与我所有数据库的链接。
我能够将数据库文件复制到/data/db/,使用sudo mongod --repair 并在mongo shell 中访问所有数据库。
但是,当我执行sudo service start mongod 时运行的 service 版本的 mongoDB 仍然使用原始的/var/lib/mongodb/(数据仍然存在)。当我尝试使用db.repairDatabase() 从shell 中修复时,我只得到{ "ok" : 1 },但没有添加数据库。我需要让服务 mongod 运行,以便客户可以访问它。
这里是服务 mongod 输出的读数:
> db.adminCommand("getCmdLineOpts")
{
"argv" : [
"/usr/bin/mongod",
"--quiet",
"--config",
"/etc/mongod.conf"
],
"parsed" : {
"config" : "/etc/mongod.conf",
"net" : {
"bindIp" : "127.0.0.1",
"port" : 27017
},
"storage" : {
"dbPath" : "/var/lib/mongodb",
"journal" : {
"enabled" : true
}
},
"systemLog" : {
"destination" : "file",
"logAppend" : true,
"path" : "/var/log/mongodb/mongod.log",
"quiet" : true
}
},
"ok" : 1
}
> db.repairDatabase()
{ "ok" : 1 }
> show databases
admin 0.000GB
local 0.000GB
如何修复服务 mongod 数据库?
【问题讨论】: