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/
トラブルシューティングはどこから始めればよいですか?
/ tmpのファイルパーミッションは何ですか?それらが変更された可能性はありますか?
A
# ls -ld /tmp
教えてくれます。
よくわからない場合は、次を試してください。
# chown root:root /tmp
# chmod 1777 /tmp
それはそれを修正するかもしれません。
このように所有者を変更してみてください、
Sudo chown mongodb:mongodb /tmp/mongodb-27017.sock
macを使用してmongodbをインストールしますが、通常はmongodb.confは必要ないので、次のことを試してください。
Sudo chown -R your-username /tmp/
ps:your-usernameは、rootではなくmac osでのユーザー名です。ユーザー名がわからない場合は、次のコマンドがあります。
whoami
3.0より前のバージョンでは、ソケットはデフォルトで777権限で作成されていました。 mongodソケットにパーミッションを設定する最も正しい方法は、mongodb.confの値を設定することです。例えば:
Sudo vim /usr/local/etc/mongodb.conf
行を挿入します:
filePermissions = 0777
それに。
パーミッションを/ tmp/mongodb-27017.sockに直接変更しようとする場合はchownおよびchmodで設定するチャンスがあります一時的。また、mongodサービスの再起動またはサーバーの再起動後に古い権限があります。
Ubuntumongoユーザーがファイルにアクセスできることを確認してください。 Mongo Ubuntuサービスは、UbuntuMongoユーザーを使用します。 mongoユーザー名を確認するには、/ var/lib/mongodbディレクトリに移動し、権限を表示します。ls-l
同じ問題があります。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