Hos*_*Aly 73 ubuntu administration mongodb
我的Ubuntu计算机崩溃了,当我重新启动它时,MongoDB无法运行.我尝试了以下命令,并得到以下输出:
$ mongo
Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91
exception: connect failed
$ service mongodb status
mongodb stop/waiting
$ service mongodb restart
stop: Unknown instance:
start: Rejected send message, 1 matched rules; type="method_call",
sender=":1.57" (uid=1000 pid=2227 comm="start mongodb ")
interface="com.ubuntu.Upstart0_6.Job" member="Start" error name="(unset)"
requested_reply="0"
destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")
$ tail /var/log/mongodb/mongodb.log
[initandlisten] exception in initAndListen: 12596 old lock file, terminating
dbexit:
[initandlisten] shutdown: going to close listening sockets...
[initandlisten] shutdown: going to flush diaglog...
[initandlisten] shutdown: going to close sockets...
[initandlisten] shutdown: waiting for fs preallocator...
[initandlisten] shutdown: closing all files...
[initandlisten] closeAllFiles() finished
dbexit: really exiting now
Run Code Online (Sandbox Code Playgroud)
(输出重新格式化以匹配网站布局.)
发生了什么?我该如何解决?
Hos*_*Aly 172
日志文件告诉您有一个"旧锁文件".MongoDB 在运行时保留一个锁文件.它在启动时创建此文件,并在文件停止时删除它.当计算机崩溃(或MongoDB崩溃,例如通过kill
)时,不会删除此文件,因此数据库无法启动.此文件的存在表明MongoDB的不正常关闭.
有两件事可以做:
如果这是一台开发机器并且您没有使用过您的数据库(并且没有您的程序),则可以手动删除该文件.对于在Ubuntu 12.10上运行的MongoDB 2.2.2,它就在/var/lib/mongodb/mongod.lock
.对于其他版本,该文件可以位于不同的路径中,也可以命名mongo.lock
.
更安全的路线是遵循MongoDB的耐久性和维修指南.总之,对于具有上述配置的计算机,您应该执行以下命令:
sudo -u mongodb mongod --repair --dbpath /var/lib/mongodb/
sudo service mongod start
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
45140 次 |
最近记录: |