Mongodb 取回所有数据库
Mongodb get back all the databases
昨天我已经将 Ubuntu 14.10 升级到 15.04。但这导致我停止了工作。我正在研究 chicagoboss 和 mongodb。我看到 mongodb 崩溃的错误。
通过键入 mongo 得到以下错误:
$ mongo
MongoDB shell version: 2.4.10
connecting to: test
Mon May 11 11:26:32.985 Error: couldn't connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:145
exception: connect failed
已关注 Whosebug query 并删除了 .lock
文件。然后尝试使用
修复
$sudo mongod --repair
然后报错:
*********************************************************************
ERROR: dbpath (/data/db/) does not exist.
Create this directory or give existing directory in --dbpath.
See http://dochub.mongodb.org/core/startingandstoppingmongo
*********************************************************************
我发现在我的 mongodb.conf 文件中 dbpath
是 /var/lib/mongodb
。在我找到所有 mongodb databases.So 的地方是正确的 我试图将 dbpath 设置到同一位置但出现错误:
$ mongod --dbpath "/var/lib/mongodb"
Mon May 11 11:33:18.607 [initandlisten] MongoDB starting : pid=4450 port=27017 dbpath=/var/lib/mongodb 64-bit host=laxmikant-alphonso
Mon May 11 11:33:18.607 [initandlisten] db version v2.4.10
Mon May 11 11:33:18.607 [initandlisten] git version: e3d78955d181e475345ebd60053a4738a4c5268a
Mon May 11 11:33:18.607 [initandlisten] build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49
Mon May 11 11:33:18.607 [initandlisten] allocator: tcmalloc
Mon May 11 11:33:18.607 [initandlisten] options: { dbpath: "/var/lib/mongodb" }
Mon May 11 11:33:18.607 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /var/lib/mongodb/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
Mon May 11 11:33:18.607 dbexit:
Mon May 11 11:33:18.607 [initandlisten] shutdown: going to close listening sockets...
Mon May 11 11:33:18.607 [initandlisten] shutdown: going to flush diaglog...
Mon May 11 11:33:18.607 [initandlisten] shutdown: going to close sockets...
Mon May 11 11:33:18.607 [initandlisten] shutdown: waiting for fs preallocator...
Mon May 11 11:33:18.607 [initandlisten] shutdown: lock for final commit...
Mon May 11 11:33:18.607 [initandlisten] shutdown: final commit...
Mon May 11 11:33:18.607 [initandlisten] shutdown: closing all files...
Mon May 11 11:33:18.608 [initandlisten] closeAllFiles() finished
Mon May 11 11:33:18.608 [initandlisten] shutdown: removing fs lock...
Mon May 11 11:33:18.608 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
Mon May 11 11:33:18.608 dbexit: really exiting now
我该如何解决这个问题。我想要我所有的数据库。
我还检查了 service start
的以下错误:
$ sudo service mongodb start
Failed to start mongodb.service: Unit mongodb.service failed to load: No such file or directory.
$ mongod --dbpath "/var/lib/mongodb"
在这种情况下,您 mongodb 以 您自己 的身份开始。而且您可能没有对数据目录的 R/W 权限。
$ sudo service mongodb start
现在您将 mongodb 作为一项服务启动,它可能会将其身份从 root 更改为 "mongo" 或类似的身份。在类似 debian 的系统上,mongodb 的配置在 /etc/init/mongodb.conf
中,或者最好在 /etc/mongodb.conf
中。参见 http://packages.ubuntu.com/utopic/amd64/mongodb-server/filelist. There you can change the database path。
顺便说一句,请检查您的数据目录的权限。用户 "mongo" - 或者 - 应该在那里有写权限的任何人:
$ ls -l /var/lib/mongodb
昨天我已经将 Ubuntu 14.10 升级到 15.04。但这导致我停止了工作。我正在研究 chicagoboss 和 mongodb。我看到 mongodb 崩溃的错误。 通过键入 mongo 得到以下错误:
$ mongo
MongoDB shell version: 2.4.10
connecting to: test
Mon May 11 11:26:32.985 Error: couldn't connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:145
exception: connect failed
已关注 Whosebug query 并删除了 .lock
文件。然后尝试使用
$sudo mongod --repair
然后报错:
*********************************************************************
ERROR: dbpath (/data/db/) does not exist.
Create this directory or give existing directory in --dbpath.
See http://dochub.mongodb.org/core/startingandstoppingmongo
*********************************************************************
我发现在我的 mongodb.conf 文件中 dbpath
是 /var/lib/mongodb
。在我找到所有 mongodb databases.So 的地方是正确的 我试图将 dbpath 设置到同一位置但出现错误:
$ mongod --dbpath "/var/lib/mongodb"
Mon May 11 11:33:18.607 [initandlisten] MongoDB starting : pid=4450 port=27017 dbpath=/var/lib/mongodb 64-bit host=laxmikant-alphonso
Mon May 11 11:33:18.607 [initandlisten] db version v2.4.10
Mon May 11 11:33:18.607 [initandlisten] git version: e3d78955d181e475345ebd60053a4738a4c5268a
Mon May 11 11:33:18.607 [initandlisten] build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49
Mon May 11 11:33:18.607 [initandlisten] allocator: tcmalloc
Mon May 11 11:33:18.607 [initandlisten] options: { dbpath: "/var/lib/mongodb" }
Mon May 11 11:33:18.607 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /var/lib/mongodb/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
Mon May 11 11:33:18.607 dbexit:
Mon May 11 11:33:18.607 [initandlisten] shutdown: going to close listening sockets...
Mon May 11 11:33:18.607 [initandlisten] shutdown: going to flush diaglog...
Mon May 11 11:33:18.607 [initandlisten] shutdown: going to close sockets...
Mon May 11 11:33:18.607 [initandlisten] shutdown: waiting for fs preallocator...
Mon May 11 11:33:18.607 [initandlisten] shutdown: lock for final commit...
Mon May 11 11:33:18.607 [initandlisten] shutdown: final commit...
Mon May 11 11:33:18.607 [initandlisten] shutdown: closing all files...
Mon May 11 11:33:18.608 [initandlisten] closeAllFiles() finished
Mon May 11 11:33:18.608 [initandlisten] shutdown: removing fs lock...
Mon May 11 11:33:18.608 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
Mon May 11 11:33:18.608 dbexit: really exiting now
我该如何解决这个问题。我想要我所有的数据库。
我还检查了 service start
的以下错误:
$ sudo service mongodb start
Failed to start mongodb.service: Unit mongodb.service failed to load: No such file or directory.
$ mongod --dbpath "/var/lib/mongodb"
在这种情况下,您 mongodb 以 您自己 的身份开始。而且您可能没有对数据目录的 R/W 权限。
$ sudo service mongodb start
现在您将 mongodb 作为一项服务启动,它可能会将其身份从 root 更改为 "mongo" 或类似的身份。在类似 debian 的系统上,mongodb 的配置在 /etc/init/mongodb.conf
中,或者最好在 /etc/mongodb.conf
中。参见 http://packages.ubuntu.com/utopic/amd64/mongodb-server/filelist. There you can change the database path。
顺便说一句,请检查您的数据目录的权限。用户 "mongo" - 或者 - 应该在那里有写权限的任何人:
$ ls -l /var/lib/mongodb