我收到以下错误:
alex@alex-K43U:/$ mongo MongoDB shell version: 2.2.0 connecting to: test Thu Oct 11 11:46:53 Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91 exception: connect failed alex@alex-K43U:/$
这是我尝试启动 mongodb 时发生的情况:
* Starting database mongodb [fail]
我已经试过了mongo --repair
mongo --repair
我将 chown 和 chmod 设置为 var、lib 和 data/db 并记录 mongodb。
不知道还能做什么。有什么建议么?
mongodb.log:
***** SERVER RESTARTED ***** Thu Oct 11 08:29:40 Thu Oct 11 08:29:40 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability. Thu Oct 11 08:29:40 Thu Oct 11 08:29:41 [initandlisten] MongoDB starting : pid=1052 port=27017 dbpath=/var/lib/mongodb 32-bit host=alex-K43U Thu Oct 11 08:29:41 [initandlisten] Thu Oct 11 08:29:41 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data Thu Oct 11 08:29:41 [initandlisten] ** see http://blog.mongodb.org/post/137788967/32-bit-limitations Thu Oct 11 08:29:41 [initandlisten] ** with --journal, the limit is lower Thu Oct 11 08:29:41 [initandlisten] Thu Oct 11 08:29:41 [initandlisten] db version v2.2.0, pdfile version 4.5 Thu Oct 11 08:29:41 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207 Thu Oct 11 08:29:41 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49 Thu Oct 11 08:29:41 [initandlisten] options: { config: "/etc/mongodb.conf", dbpath: "/var/lib/mongodb", logappend: "true", logpath: "/var/log/mongodb/mongodb.log" } Thu Oct 11 08:29:41 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/var/lib/mongodb/journal" ************** Unclean shutdown detected. Please visit http://dochub.mongodb.org/core/repair for recovery instructions. ************* Thu Oct 11 08:29:41 [initandlisten] exception in initAndListen: 12596 old lock file, terminating Thu Oct 11 08:29:41 dbexit: Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close listening sockets... Thu Oct 11 08:29:41 [initandlisten] shutdown: going to flush diaglog... Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close sockets... Thu Oct 11 08:29:41 [initandlisten] shutdown: waiting for fs preallocator... Thu Oct 11 08:29:41 [initandlisten] shutdown: closing all files... Thu Oct 11 08:29:41 [initandlisten] closeAllFiles() finished Thu Oct 11 08:29:41 dbexit: really exiting now
编辑:
我删除了锁,然后进行了 mongod 修复并得到了这个错误:
Thu Oct 11 12:05:37 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
所以我用 sudo 做到了:
alex@alex-K43U:~$ sudo mongod --repair Thu Oct 11 12:05:42 Thu Oct 11 12:05:42 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability. Thu Oct 11 12:05:42 Thu Oct 11 12:05:42 [initandlisten] MongoDB starting : pid=5129 port=27017 dbpath=/data/db/ 32-bit host=alex-K43U Thu Oct 11 12:05:42 [initandlisten] Thu Oct 11 12:05:42 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data Thu Oct 11 12:05:42 [initandlisten] ** see http://blog.mongodb.org/post/137788967/32-bit-limitations Thu Oct 11 12:05:42 [initandlisten] ** with --journal, the limit is lower Thu Oct 11 12:05:42 [initandlisten] Thu Oct 11 12:05:42 [initandlisten] db version v2.2.0, pdfile version 4.5 Thu Oct 11 12:05:42 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207 Thu Oct 11 12:05:42 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49 Thu Oct 11 12:05:42 [initandlisten] options: { repair: true } Thu Oct 11 12:05:42 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/data/db/journal" Thu Oct 11 12:05:42 [initandlisten] finished checking dbs Thu Oct 11 12:05:42 dbexit: Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close listening sockets... Thu Oct 11 12:05:42 [initandlisten] shutdown: going to flush diaglog... Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close sockets... Thu Oct 11 12:05:42 [initandlisten] shutdown: waiting for fs preallocator... Thu Oct 11 12:05:42 [initandlisten] shutdown: closing all files... Thu Oct 11 12:05:42 [initandlisten] closeAllFiles() finished Thu Oct 11 12:05:42 [initandlisten] shutdown: removing fs lock... Thu Oct 11 12:05:42 dbexit: really exiting now
但仍然有同样的问题。
日志表明 mongodb 正在终止,因为有一个旧的锁文件。
如果您没有并且没有运行日志,请删除锁定文件,运行修复,然后再次启动 mongodb。
如果您正在或曾经在打开日志的情况下运行,请参阅相关的 Mongo DB 文档。请注意,他们说“如果您使用日记功能运行,则不应进行修复以恢复到一致的状态。” 所以如果你在写日记,修理可能会让事情变得更糟。