我似乎无法连接到我在本地计算机上作为Windows服务安装的Mongo DB。我还构建了一个与MongoDB通信的WPF应用程序。 错误消息:
错误:无法连接到服务器127.0.0.1 shell / mongo.js:8 4 异常:连接失败 检测到不正常关机。
答案 0 :(得分:98)
答案 1 :(得分:15)
更快:
sudo rm /data/db/mongod.lock
sudo mongod --dbpath /data/db --repair
sudo mongod --dbpath /data/db
答案 2 :(得分:10)
如果以root用户身份执行修复操作,请确保之后所有db文件都归mongodb用户所有,否则mongodb将无法启动
chown -R mongodb:mongodb /data/db
rm /data/db/mongod.lock
/etc/init.d/mongodb start
答案 3 :(得分:3)
$ mongo
> use dbname
> db.repairDatabase()
注意 - shell中还提供了修复功能,其中包含用于repairDatabase命令的db.repairDatabase()帮助程序。
另见http://docs.mongodb.org/manual/tutorial/recover-data-following-unexpected-shutdown/:
答案 4 :(得分:1)
按如下所示编写命令,我认为它可以解决问题:
auto main() -> int
{
using Argh = int[0];
}
答案 5 :(得分:1)
如果您在 Ubuntu 上使用 official MongoDB repo 而不是默认软件包,则接受的答案将不起作用。
默认情况下,mongod
命令使用 /data/db
作为 default dbPath
config setting,而 /etc/mongodb.conf
使用 /var/lib/mongodb
作为路径。因此,如果您只执行 mongod --repair
,它会尝试修复位于 /data/db
的数据库,这是错误的路径。
我还发现如果您以mongod
用户身份执行root
,创建的任何文件都将归root
所有,因此您需要使用{{1} } 用户。
这就是我最终为了让它工作而做的:
mongodb
答案 6 :(得分:0)
按照此步骤将您的mondoDB重新启动为新鲜
1,杀死mongod正在运行的所有进程
为此必须强行杀死端口27017(mongodb的默认端口)上运行的每个进程
lsof -n -i4TCP:27017
其中27017是进程的端口号 在这将返回进程ID(PID)并运行
kill -9 "PID"
用运行后得到的数字替换PID 第一条命令
2,使用mongod
命令重新启动mongo