web-dev-qa-db-ja.com

MongoDB-ソケットのアクセスが拒否されました:/tmp/mongodb-27017.sock

Ubuntu 10.04LTSでMongoDBのクリーンなシャットダウンが発生しました。 rootとしてログインし、サービスmongodb startを介してMongodbを実行すると、以下のエラーが発生します-

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

ルート経由でMongoDBを手動で実行すると、問題なく動作します。

/tmp/mongodb-27017.sockファイルがないことを確認できます

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/

トラブルシューティングはどこから始めればよいですか?

18
user837208

/ tmpのファイルパーミッションは何ですか?それらが変更された可能性はありますか?

A

# ls -ld /tmp

教えてくれます。

よくわからない場合は、次を試してください。

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

それはそれを修正するかもしれません。

17
Dr Joe

このように所有者を変更してみてください、

Sudo chown mongodb:mongodb /tmp/mongodb-27017.sock
17
Adil Abbasi

macを使用してmongodbをインストールしますが、通常はmongodb.confは必要ないので、次のことを試してください。

Sudo chown -R your-username /tmp/

ps:your-usernameは、rootではなくmac osでのユーザー名です。ユーザー名がわからない場合は、次のコマンドがあります。

whoami
0
dream-blue

3.0より前のバージョンでは、ソケットはデフォルトで777権限で作成されていました。 mongodソケットにパーミッションを設定する最も正しい方法は、mongodb.confの値を設定することです。例えば:

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

行を挿入します:

filePermissions = 0777 

それに。

パーミッションを/ tmp/mongodb-27017.sockに直接変更しようとする場合はchownおよびchmodで設定するチャンスがあります一時的。また、mongodサービスの再起動またはサーバーの再起動後に古い権限があります。

0
mature

Ubuntumongoユーザーがファイルにアクセスできることを確認してください。 Mongo Ubuntuサービスは、UbuntuMongoユーザーを使用します。 mongoユーザー名を確認するには、/ var/lib/mongodbディレクトリに移動し、権限を表示します。ls-l

0
Travis

同じ問題があります。rootでrunmongodbを使用しているため、CentOS7.3ではsystemctlで失敗し始めます。

Mongodbの正しい権限を使用してください。 $ Sudo chown -R mongod:mongod \ /var/run/mongodb/mongod.pid \ /tmp/mongodb-27017.sock \ /var/lib/mongo/

Error reading file /path/file: Permission deniedのような他の失敗がある場合は、SELinuxで修正できるかもしれません。 $ Sudo chcon -v -t mongod_var_lib_t /path/file

ちなみに、777パーミッションの使用はお勧めしません。とても危険です。 :P

0
Chu-Siang Lai