20

I had an unclean shutdown of MongoDB on Ubuntu 10.04 LTS. Now when I login as root and run Mongodb via service mongodb start, I get below error-

Mon Dec 12 13:53:15 [initandlisten] ERROR: listen(): bind() failed errno:13 Permission denied for socket: /tmp/mongodb-27017.sock

When I run MongoDB manually via root, it works just fine.

I can confirm that there is no /tmp/mongodb-27017.sock file

root@devbox:~# ll /tmp/
total 16
drwxr-xr-x  4 root root 4096 2011-12-12 13:53 ./
drwxr-xr-x 25 root root 4096 2011-12-11 13:06 ../
drwxrwxrwt  2 root root 4096 2011-12-12 13:01 .ICE-unix/
drwxrwxrwt  2 root root 4096 2011-12-12 13:01 .X11-unix/

Where do I begin troubleshooting?

user837208
  • 2,487
  • 7
  • 37
  • 54

6 Answers6

20

Try changing owner like this,

sudo chown mongodb:mongodb /tmp/mongodb-27017.sock
Adil Abbasi
  • 3,161
  • 1
  • 40
  • 35
18

What's are the file permissions on /tmp? Is it possible that they've been changed?

A

# ls -ld /tmp

will tell you.

If you're unsure try:

# chown root:root /tmp
# chmod 1777 /tmp

That might fix it.

Dr Joe
  • 718
  • 5
  • 19
3

we use mac and install mongodb, usually do not need mongodb.conf, so, try this:

sudo chown -R your-username /tmp/

ps:your-username is your username in mac os, not root.if you don't know what is your username,there's a command:

whoami
dream-blue
  • 119
  • 3
1

In the Versions before 3.0 the socket was created with 777 permissions by default. Most the most correct way set permissions to mongod socket is set value in mongodb.conf. For example:

sudo vim /usr/local/etc/mongodb.conf

and insert line:

filePermissions = 0777 

to it.

In case if you will try directly change permissions to /tmp/mongodb-27017.sock with chown and chmod you can have a chance set it temporary. And have a old permissions after mongod service restart or server reboot.

slava
  • 791
  • 1
  • 11
  • 26
0

I have same issue, because I have use run mongodb by root, it will start fail with systemctl on CentOS 7.3.

Please use the correct permission for mongodb. $ sudo chown -R mongod:mongod \ /var/run/mongodb/mongod.pid \ /tmp/mongodb-27017.sock \ /var/lib/mongo/

If we have other fail like Error reading file /path/file: Permission denied, maybe we can fix it by SELinux. $ sudo chcon -v -t mongod_var_lib_t /path/file

By the way, I don't recomment use the 777 permission, it's so danger. :P

Chu-Siang Lai
  • 2,658
  • 1
  • 24
  • 21
0

Make sure the Ubuntu mongo user has access to the file. The Mongo Ubuntu service uses the Ubuntu Mongo user. To find out the mongo username is go to /var/lib/mongodb directory and show the permissions: ls -l

Travis
  • 336
  • 1
  • 5
  • `root@devbox:~# ls -l /var/lib/mongodb total 4 drwxr-xr-x 2 mongodb mongodb 4096 2011-12-12 13:53 journal -rwxr-xr-x 1 mongodb mongodb 0 2011-12-12 13:53 mongod.lock` – user837208 Dec 12 '11 at 19:32