MongoDB - Permission denied for socket: /tmp/mongodb-27017.sock

﹥>﹥吖頭↗ 提交于 2019-11-26 16:42:30

问题


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?


回答1:


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.




回答2:


Try changing owner like this,

sudo chown mongodb:mongodb /tmp/mongodb-27017.sock



回答3:


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




回答4:


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




回答5:


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.




回答6:


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


来源:https://stackoverflow.com/questions/8479384/mongodb-permission-denied-for-socket-tmp-mongodb-27017-sock

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!