【问题标题】:How to resolve error :dbpath (/data/db/) does not exist permanently in MongoDB如何解决错误:dbpath (/data/db/) 在 MongoDB 中不永久存在
【发布时间】:2012-09-06 05:15:29
【问题描述】:

我已经在我的 Ubuntu 10.04 中安装了 mongodb。

我知道当使用命令“mongod”启动mongodb服务器时,它需要/data/db文件夹,可以通过创建“/data/db/”轻松解决”。另一种方法是使用 mongod --dbpath "path" 提供您自己的路径,当我们打算为 db 提供我们自己的自定义路径时。

但是在通过http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/链接时我发现有一个配置文件。

我对其进行了以下更改。

#mongodb.conf

dbpath=/EBS/Work/mongodb/data/db/


logpath=/EBS/Work/mongodb/mongodb.log

logappend=true

但是当我尝试使用 "mongod" 启动服务器时,它仍然会引发相同的错误 即 error :dbpath (/data/db/) 不存在 。 我想知道如何将我的 dbpath 永久重定向到我自己的自定义文件夹,因为每次您不想使用“mongod --dbpath path”键入路径。相反,我们希望在配置文件中进行一些更改。

【问题讨论】:

    标签: mongodb ubuntu


    【解决方案1】:

    如果你使用的是 mac catalina:

    mongod --dbpath=/Users/user/data/db 离开这个窗口

    然后你可以在另一个窗口中输入。

    蒙哥

    显示数据库

    【讨论】:

      【解决方案2】:

      这就是我解决这个问题的方法,只需遵循他们的官方文档。 HERE

      从终端一步一步(运行ubuntu):

      1. cd 进入 /srv 文件夹 =>> cd /srv/
      2. 制作目录 =>> mkdir -p mongodb
      3. 在 /srv/ 中为新创建的 mongodb 文件夹赋予正确的权限和组......
      4. 最后,运行这个 => mongod --dbpath /srv/mongodb/

      “一步一步”复制终端……:)

       ~$ mongod 
          Tue Jun  3 20:27:39.564 [initandlisten] MongoDB starting : pid=5380 port=27017 dbpath=/srv/mongodb/ 64-bit host= -SVE1411EGXB
          Tue Jun  3 20:27:39.564 [initandlisten] db version v2.4.10
          Tue Jun  3 20:27:39.564 [initandlisten] git version: e3d78955d181e475345ebd60053a4738a4c5268a
          Tue Jun  3 20:27:39.564 [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
          Tue Jun  3 20:27:39.564 [initandlisten] allocator: tcmalloc
          Tue Jun  3 20:27:39.564 [initandlisten] options: { dbpath: "/srv/mongodb/" }
          Tue Jun  3 20:27:39.565 [initandlisten] exception in initAndListen: 10296 
          *********************************************************************
           ERROR: dbpath (/srv/mongodb/) does not exist.
           Create this directory or give existing directory in --dbpath.
           See http://dochub.mongodb.org/core/startingandstoppingmongo
          *********************************************************************
          , terminating
          Tue Jun  3 20:27:39.565 dbexit: 
          Tue Jun  3 20:27:39.565 [initandlisten] shutdown: going to close listening sockets...
          Tue Jun  3 20:27:39.565 [initandlisten] shutdown: going to flush diaglog...
          Tue Jun  3 20:27:39.565 [initandlisten] shutdown: going to close sockets...
          Tue Jun  3 20:27:39.565 [initandlisten] shutdown: waiting for fs preallocator...
          Tue Jun  3 20:27:39.565 [initandlisten] shutdown: lock for final commit...
          Tue Jun  3 20:27:39.565 [initandlisten] shutdown: final commit...
          Tue Jun  3 20:27:39.565 [initandlisten] shutdown: closing all files...
          Tue Jun  3 20:27:39.565 [initandlisten] closeAllFiles() finished
          Tue Jun  3 20:27:39.565 dbexit: really exiting now
               ~$ mongod --dbpath /srv/mongodb/
          Tue Jun  3 20:27:55.616 [initandlisten] MongoDB starting : pid=5445 port=27017 dbpath=/srv/mongodb/ 64-bit host= -SVE1411EGXB
          Tue Jun  3 20:27:55.616 [initandlisten] db version v2.4.10
          Tue Jun  3 20:27:55.616 [initandlisten] git version: e3d78955d181e475345ebd60053a4738a4c5268a
          Tue Jun  3 20:27:55.616 [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
          Tue Jun  3 20:27:55.616 [initandlisten] allocator: tcmalloc
          Tue Jun  3 20:27:55.616 [initandlisten] options: { dbpath: "/srv/mongodb/" }
          Tue Jun  3 20:27:55.617 [initandlisten] exception in initAndListen: 10296 
      
           ~$ sudo service mongodb start
      start: Job is already running: mongodb
           ~$ sudo service mongodb stop
      mongodb stop/waiting
           ~$ cd /srv/
           ~$~$/srv$ ls
           ~$ /srv$ mkdir mongodb
           ~$ sudo chgrp   /srv
           ~$ sudo chmod 775 /srv
           ~$ cd /srv/
           /srv$ ls
           /srv$ mkdir mongodb
           /srv$ ls mongodb
           /srv$ cd
           ~$ mongod --dbpath /srv/mongodb/
      Tue Jun  3 20:40:57.457 [initandlisten] MongoDB starting : pid=6018 port=27017 dbpath=/srv/mongodb/ 64-bit host= -SVE1411EGXB
      Tue Jun  3 20:40:57.457 [initandlisten] db version v2.4.10
      Tue Jun  3 20:40:57.457 [initandlisten] git version: e3d78955d181e475345ebd60053a4738a4c5268a
      Tue Jun  3 20:40:57.457 [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
      Tue Jun  3 20:40:57.457 [initandlisten] allocator: tcmalloc
      Tue Jun  3 20:40:57.457 [initandlisten] options: { dbpath: "/srv/mongodb/" }
      Tue Jun  3 20:40:57.520 [initandlisten] journal dir=/srv/mongodb/journal
      Tue Jun  3 20:40:57.521 [initandlisten] recover : no journal files present, no recovery needed
      Tue Jun  3 20:41:00.545 [initandlisten] preallocateIsFaster=true 36.86
      Tue Jun  3 20:41:03.489 [initandlisten] preallocateIsFaster=true 35.06
      Tue Jun  3 20:41:07.456 [initandlisten] preallocateIsFaster=true 34.44
      Tue Jun  3 20:41:07.456 [initandlisten] preallocateIsFaster check took 9.935 secs
      Tue Jun  3 20:41:07.456 [initandlisten] preallocating a journal file /srv/mongodb/journal/prealloc.0
      Tue Jun  3 20:41:10.009 [initandlisten]         File Preallocator Progress: 985661440/1073741824    91%
      Tue Jun  3 20:41:22.273 [initandlisten] preallocating a journal file /srv/mongodb/journal/prealloc.1
      Tue Jun  3 20:41:25.009 [initandlisten]         File Preallocator Progress: 933232640/1073741824    86%
      Tue Jun  3 20:41:37.119 [initandlisten] preallocating a journal file /srv/mongodb/journal/prealloc.2
      Tue Jun  3 20:41:40.093 [initandlisten]         File Preallocator Progress: 1006632960/1073741824   93%
      Tue Jun  3 20:41:52.450 [FileAllocator] allocating new datafile /srv/mongodb/local.ns, filling with zeroes...
      Tue Jun  3 20:41:52.450 [FileAllocator] creating directory /srv/mongodb/_tmp
      Tue Jun  3 20:41:52.503 [FileAllocator] done allocating datafile /srv/mongodb/local.ns, size: 16MB,  took 0.022 secs
      Tue Jun  3 20:41:52.517 [FileAllocator] allocating new datafile /srv/mongodb/local.0, filling with zeroes...
      Tue Jun  3 20:41:52.537 [FileAllocator] done allocating datafile /srv/mongodb/local.0, size: 64MB,  took 0.02 secs
      Tue Jun  3 20:41:52.538 [websvr] admin web console waiting for connections on port 28017
      Tue Jun  3 20:41:52.538 [initandlisten] waiting for connections on port 27017
      

      【讨论】:

      • 请正确阅读问题。您的解决方案在问题本身中已经提到过:One more way is to provide your own path using mongod --dbpath "path",when we intend to give our own custom path for db. 并且问题已经得到解答。
      【解决方案3】:

      假设您已按照说明安装packaged version of MongoDB,您应该使用service 启动和停止mongod

      开始mongod:

       sudo service mongodb start
      

      停止mongod

       sudo service mongodb stop
      

      如果使用service命令启动和停止,应该是使用配置文件:/etc/mongodb.conf

      从命令行启动mongod

      如果您直接运行mongod 而不是使用服务定义,则还必须将配置文件指定为command line parameter(如果要使用):

      mongod --config /etc/mongodb.conf
      

      【讨论】:

      • :Thnx.但是有什么办法让mongod默认查找配置文件?
      • @Abhinav:是的,使用 service 命令启动 mongod,它将使用 /etc/mongodb.conf。我已经编辑了答案以使其更清楚。
      • 太棒了。这也让我很困扰!
      • 您可以在 etc 中有多个 mongo .config 文件,但您显然不能使用相同的名称。这对于非服务来说是可以的,但可能由于文件权限而无法作为服务启动。
      【解决方案4】:
      1. 从根系统文件夹中查找 mongo 日志文件

      sudo find / -name "mongodb.log" -type f

      结果: /var/log/mongodb/mongodb.log

      1. 打开 /var/log/mongodb/mongodb.log

      2. 搜索最后一个“例外”字

      3. 尝试纠正异常

      在我的情况下,下一个例外是: 2015-07-30T15:09:15.806+0300 [initandlisten] initAndListen 中的异常:当存在日志/文件时,如果没有启用 --journal,则 13597 无法启动,终止

      我做了下一个:

      1. cd /var/lib/mongodb
      2. rm -r 日志/

      【讨论】:

        【解决方案5】:

        更改新数据目录的用户:

        chown mongodb [rute_directory]

        再试一次启动mongo服务

        服务 mongodb 启动

        我用这个解决了同样的问题。

        【讨论】:

          猜你喜欢
          • 2014-08-27
          • 2014-06-01
          • 1970-01-01
          • 1970-01-01
          • 2021-01-04
          • 1970-01-01
          • 2018-01-06
          • 2014-07-01
          相关资源
          最近更新 更多