user1709076
user1709076

Reputation: 2856

why does mongodb not care what my config file is?

I can tell mongod does not respect its own default config file because when I type 'mongod' in the terminal, i see

MongoDB starting : ... dbpath=/data/db ...

however in my /etc/mongodb.conf i have

storage:
  dbPath: /home/ubuntu/data/db

So it appears mongod does not care about what is defined in its own default config file?

(i know i can add --config /etc/mongodb.conf but I don't see why if this config file is by definition the default config file)

Second question, if mongod does not use /etc/mongodb.conf - is there another config somewhere telling it to put the database path do /data/db (so i can change it) - or is /data/db hard-coded in the int main() of the mongod.exe

Third question: if so does this basically mean you have to always specify the path of the config file when starting mongo?

Fourth question: If it is the case that i must manually define the path to the mongodb config file when starting mongo, how would it be possible to both start mongo as a service like:

service start mongodb

and also specify the config file to be used for the service?

ps. i already know about mongod --fork .... but i'm trying to avoid big long inputs and just have a simple server start/stop/status function with one config file that is respected.

thanks

Upvotes: 1

Views: 884

Answers (1)

Stennie
Stennie

Reputation: 65413

i'm trying to avoid big long inputs and just have a simple server start/stop/status function with one config file that is respected.

If you run MongoDB as an service in Ubuntu, the config path of /etc/mongod.conf is included in the service definition. Starting and stopping MongoDB as a service is the recommended way to run with consistent settings using a standard config location. You do not need to include any extra parameters when starting or stopping the service; any parameters should be set via the config file.

in my /etc/mongodb.conf i have

Note that the expected location is usually /etc/mongod.conf (named to match the corresponding server daemon). An /etc/mongod.conf with defaults for your O/S should be created as part of the installation (assuming you are using packages provided by MongoDB).

If you installed packages from an alternative source such as the Ubuntu Universe repository, it is possible that your service definition is using /etc/mongodb.conf and may have different defaults from the MongoDB documentation.

So it appears mongod does not care about what is defined in its own default config file?

If you start mongod from the command line, default values for mongod options are used. As at MongoDB 4.0 there is no default config file path baked into the server binary, but there is a default dbPath (/data/db on Linux).

There's a relevant feature suggestion you can watch/upvote in the MongoDB Jira issue tracker: SERVER-36150: Improved default config file handling.

Upvotes: 2

Related Questions