43

I have installed mongodb in my Ubuntu 10.04.

I know that when it comes to start the mongodb server with the command "mongod",then it expects /data/db folder and it can be easily resolved by creating "/data/db/". One more way is to provide your own path using mongod --dbpath "path",when we intend to give our own custom path for db.

But while going through http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/ link i found that there is a configuration file.

I made the following changes to it.

# mongodb.conf

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


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

logappend=true

But still when I try to start the server with "mongod" it throws the same error i.e error :dbpath (/data/db/) does not exist . I wanted to know that how can I permanently redirect my dbpath to my own custom folder cause everytime you don't want to type the path using "mongod --dbpath path".Rather we look to make some changes in configuration file.

Kent V
  • 545
  • 5
  • 16
Abhinav
  • 1,720
  • 4
  • 21
  • 33

5 Answers5

58

Assuming you have followed the instructions to install a packaged version of MongoDB, you should be starting and stopping mongod using service.

To start mongod:

 sudo service mongodb start

To stop mongod:

 sudo service mongodb stop

If you use the service command to start and stop, it should be using the configuration file: /etc/mongodb.conf.

Starting mongod from the command line

If you run mongod directly instead of using the service definition, you will also have to specify a configuration file as a command line parameter if you want one to be used:

mongod --config /etc/mongodb.conf
Stennie
  • 63,885
  • 14
  • 149
  • 175
  • :Thnx.But is there any way so that mongod looks for configuration file by default? – Abhinav Sep 13 '12 at 07:23
  • 1
    @Abhinav: Yes, start `mongod` with the service command and it will use the /etc/mongodb.conf. I've edited the answer to make this clearer. – Stennie Sep 13 '12 at 08:16
  • Great. This got me troubling too ! – VaidAbhishek Feb 03 '13 at 17:15
  • You can have more than one mongo .config file there in etc but you obviously can't use the same name for it. This will be okay for non service but might fail to start as a service because of file permissions. – Douglas G. Allen Oct 13 '14 at 16:42
7

Here is how I got this resolved, simply by following their official Doc . HERE.

Step by step from teminal (running ubuntu) :

  1. cd into /srv folder =>> cd /srv/
  2. make directory =>> mkdir -p mongodb
  3. From within /srv/ give the newly created mongodb folder the right permissions and group ......
  4. Lastly, run this => mongod --dbpath /srv/mongodb/

"step by step" Copy of the terminal ...... :)

 ~$ 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
z atef
  • 7,138
  • 3
  • 55
  • 50
  • Please read the question correctly. Your solution is something already mentioned there in question itself: `One more way is to provide your own path using mongod --dbpath "path",when we intend to give our own custom path for db.` and the question has already been answered. – Abhinav Jun 04 '14 at 05:09
1

Change the user of the new data directory:

chown mongodb [rute_directory]

And try another time to start the mongo service

service mongodb start

I solve the same problem with this.

Raugaral
  • 1,303
  • 13
  • 25
0
  1. Find mongo log file from root system folder

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

result: /var/log/mongodb/mongodb.log

  1. open /var/log/mongodb/mongodb.log

  2. search for last "exception" word

  3. try to correct exception

In my case exception was the next: 2015-07-30T15:09:15.806+0300 [initandlisten] exception in initAndListen: 13597 can't start without --journal enabled when journal/ files are present, terminating

I made the next:

  1. cd /var/lib/mongodb
  2. rm -r journal/
1nstinct
  • 1,745
  • 1
  • 26
  • 30
0

If you are using mac catalina:

mongod --dbpath=/Users/user/data/db leave this window

then you can type in another window.

mongo

show dbs

Prakash Singh
  • 377
  • 2
  • 4