The problem is that the directory you created, /data/db
is owned by and only writable by the root user, but you are running mongod as yourself. There are several ways to resolve this, but ultimately, you must give the directory in question the right permissions. If this is for production, I would advise you to check the docs and think this over carefully -- you probably want to take special care.
However, if this is just for testing and you just need this to work and get on with it, you could try this, which will make the directory writable by everyone:
> sudo chmod -R go+w /data/db
or this, which will make the directory owned by you:
> sudo chown -R $USER /data/db
On a Mac, I had to do the following:
sudo chown -R $USER /data/db
sudo chown -R $USER /tmp/
because there was also a file inside /tmp
which Mongo also needed access
If your system is using SELinux, make sure that you use the right context for the directory you created:
ls -dZ /data/db/
ls -dZ /var/lib/mongo/
and clone the context with:
chcon -R --reference=/var/lib/mongo /data/db
First of all stop all the mongoDB services, then create a directory on /
, it means root, if you don't have, and remove the port file also.
give all permission to that directory, become that directory owner, run below command:
sudo service mongod stop
sudo rm -rf /tmp/mongod*
sudo mkdir -p /data/db
sudo chmod -R a+wxr /data
sudo chown -R $USER:$USER /data
Now you're done, just start the MongoDB service, if didn't help, try to change the port like:
sudo service mongod restart && mongod # if didn't help run below cmd
mongod --port 27018
Note: For me all this stuff works and hoping would work for you, guy!
I experienced the same problem and following solution solved this problem. You should try the following solution.
sudo mkdir -p /data/db
sudo chown -R 'username' /data/db
Fix the permissions of /data/db
(or /var/lib/mongodb
):
sudo chown -R mongodb: /data/db
then restart MongoDB e.g. using
sudo systemctl restart mongod
In case that does not help, check your error message if you are using a data directory different to /var/lib/mongodb. In that case run
sudo chown -R mongodb: <insert your data directory here>
source
Nice solutions, but I wonder why nobody is giving the solution for windows.
If you are using windows you just have to "Run as Administrator" the cmd.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With