How can I install mongodb on a Linux server without root privileges? is this possible? What would the steps be? Is there a way to configure mongo to not use /data/db?
You may download the binaries from MongoDB website.
There are a lot of options for the command mongod to change the default behavior, one of these is:
--dbpath arg directory for datafiles
Based on comments:
But it is preferable to specify all configurations in a configuration file and just invoke mongod with:
--config filename
Related
$ mongo
BadValue: error: no args for --configdb
try 'C:\Program Files\MongoDB\Server\6.0\bin\mongos.exe --help' for more information
mongod says waiting for connections on port 27017. Whats the problem with mongo?
My path to mongo is: alias mongo="/c/Program\ Files/MongoDB/Server/6.0/bin/mongos.exe"
For everybody with the same problems of MongoDB installiation on Windows accordingly Udemy course of Full stack Bootcamp.
Download current version of Mongodb community server (msi) save it in Program files->Mongodb folder then you should download (https://downloads.mongodb.com/compass/mongodb-mongosh_1.5.1_amd64.deb) MongoDB shell because in 6.0 version or later there is no mongo.exe. save it to Mongodb folder. Save the variables mongod and mongosh via vim or interface tools (.dash_profile). I created via vim. Mongod variable is path to you mongod.exe and mongosh is the path to mongosh.exe. and run the mongod and mongosh in separate terminal tabs. For me it was necessary to rename mongorc.js to mongoshrc.js I used mv mongorc.js mongoshrc.js and that's all. Please be attention if you have old .bash_profile. You need to remove them (rm) because it grabs the first one. Check the list with ls -a.
download the shell from latest version here:
https://www.mongodb.com/try/download/shell?jmp=docs
mongo is change to mongosh, extract the folder in your desire directory, and change your "atlas mongos" path to "mongosh.exe" path. "mongosh.exe" path will be in bin folder of the downloaded zip file.
I have installed MongoDB using manual option.
When I fire mongod it will take parameters from somewhere else specially for dbPath.
I want to have my own dbPath without specifying it with --dbPath each time.
So I found option to provide mongod.conf file and call mongod --config option but still I need to pass path of .conf file.
My ultimate goal is to just launch mongod as service and it will read config file from path I configured. For this I tried LaunchAgent and LaunchDaemon with no luck. What I thought is that if I can configure LaunchAgent or Daemon then I will provide path to mongod of bin directory of MongoDB folder and provide --config and path for .conf file as argument and then I need to just launch mongod using launchctl with name mongod and it will start mongod --config <.conf file path>.
But I am not able to do so. I read nearly 15-16 posts on LaunchAgent and Daemon but did not get solution my problem. I tried to do so with making mongod.plist file at various places like /Library/LaunchDaemon, /Library/LaunchAgent and ~/Library/LaunchDaemon but I always get error "Path had bad ownership/permissions". I tried chown and chgrp but no luck.
I hope you got my point. I really need complete solution to achieve my goal.
Do you use linux or windows?
This is the default location of mongodb.conf in linux:
/etc/mongodb.conf
You can simply edit it with your parameters, and start the service using:
sudo service mongodb restart
If you are using windows, it depends on the version of MongoDB you are using, but check in:
C:\Program Files\MongoDB\Server\3.4\...
For the same file.
After installing mongodb on windows, I set up the necessary folders but made a typing mistake when doing the following command:
mongod --directoryperdb --dbpath C:\mondodb\data\db --logpath C:\mongodb\log\mongo.log --logappend --rest --install
the folder is named mongodb but i named it mondodb by accident and can't seem to overwrite that, so when I start mongodb by doing net start mongodb I get an error in my log saying C:\mondodb\data\db not found
I tried redoing it like so mongod --directoryperdb --dbpath C:\mongodb\data\db --logpath C:\mongodb\log\mongo.log --logappend --rest --install but it's not working.
how can I redo the mongod thingy?
There are a few different things you could try:
Go into the registry and change the service path: Modifying the "Path to executable" of a windows service. After you modify it, you can go into Services.msc, right-click on the service, go to Properties, then Look at the Path to executable: and make sure that it points to mongodb rather than mondodb.
It involves editing the registry, but service information can be found in HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services. Find the service you want to redirect, locate the ImagePath subkey and change that value.
Go into a command prompt (may need to Run as Administrator) and do sc delete mongod <or whatever the service is named> -- can check services.msc for that). Then re-run your command with the correct path.
Alternately, you might try to set it up by taking a config file so that you can just change those options via config file rather than having to modify the service or delete/reinstall the service when you want to change options. I believe the command there is C:\<mongopath>\mongod.exe -f <config file name> --install.
I'm using ubuntu 16.04! Is it possible to change the data directory for a specific database in mongo? I'm trying to setup this recommendation engine and I was asked to create a new MongoDB database and set its path to folder.
Pre-version 3.0.0, all the databases that one mongod hosts have to be in the same dbpath folder which can be set via command arguments using the --dbpath flag or the config file.
You could however run multiple mongods and host them individually? either on different ip/ports.
Version 3.0.0 you can use the --directoryperdb flag within the command arguments or config to set multiple directories per database (See https://docs.mongodb.com/manual/reference/program/mongod/#cmdoption--directoryperdb)
Uses a separate directory to store data for each database. The directories are under the --dbpath directory, and each subdirectory name corresponds to the database name.
When you start mongod.exe you can set the database path with the
mongod.exe --dbpath "path to your folder"
setting.
yes it's possible, run mongod process with --dbpath option
I am trying to install mongodb on Ubuntu 14.04.
I am new to linux. I figured out how to install ubuntu and become su to the root as well as how to set up environment path
I am just wondering where exactly the default path suppose to be for mongodb.
should I use root and put the data/db in the root directory?
When I install the mongo db it tell me to run the sudo mongo install (don't remember exactly what the command is) it runs and installs, A mongodb folder then appears in the system where etc folder is. also there is a folder in /var/lib/mongodb.
also I have to chmod 777 for the data/db I don't think I was able to do this.
So where exactly data/db suppose to reside by default?
You should take a look at mongod.conf file.
Default working directory should be "/data/db" - if is now exist - just create is. No need to chmod 777 if you create the directory and run mongo as root user.
If you want to start mongod with other working directory - modify mongod.conf file or start mongod with --dbpath /pathtootheremptyfolder/
Please let me know if you are OK.