web-dev-qa-db-ja.com

MongoDB 3.0の「ソケットファイルのリンク解除に失敗しました」エラー

MongoDBは初めてです。 Windows 7ホストのVMであるUbuntu 13.0 LTSにMongoDb 3.0をインストールしようとしています。 MongoDBを正常にインストールしました(パッケージなど)が、コマンドSudo service mongod startを実行すると、「/ var/log/mongodb/mongod.log」ログファイルに次のエラーが記録されます。誰でもこのエラーを理解するのに役立ちますか?これに関連するインターネット上のものは何もありません。

2015-04-23T00:12:00.876-0400 Iコントロール*****サーバーが再起動されました***** 2015-04-23T00:12:00.931-0400 Eネットワーク[initandlisten]ソケットのリンク解除に失敗しましたファイル/tmp/mongodb-27017.sock errno:1操作は許可されていません2015-04-23T00:12:00.931-0400 I-[initandlisten] Fatal Assertion 28578 2015-04-23T00:12:00.931-0400 I- [initandlisten]

60
KurioZ7

mongodb-27017.sockファイルを削除して、この問題を自分で修正しました。このファイルを削除してからサービスを実行しましたが、うまくいきました。ただし、問題の根本原因はまだわかりません。コマンドls - lat /tmp/mongodb-27017.sockの出力は現在

srwx------ 1 mongodb nogroup 0 Apr 23 06:24 /tmp/mongodb-27017.sock
128
KurioZ7

KurioZ7が提供する回答の代わりに、現在のユーザーに.sockファイルのアクセス許可を設定するだけです。

Sudo chown `whoami` /tmp/mongodb-27017.sock

Sudoを使用せずにmongodを実行したい場合、これは私にとってのトリックです。 KurioZ7sの回答のようにファイルを削除すると、次回マシンを再起動したときに同じエラーが表示されます。

26
Bastronaut

この問題は、コマンドを使用するときに発生します

mongod

コマンドを使用する前に

Sudo service mongod start

問題を修正するには、次のいずれかを実行します。

ファイルに適切な許可を設定します。

/tmp/mongodb-27017.sock

OR

ファイルを削除する

/tmp/mongodb-27017.sock

走る

Sudo service mongod start && mongod
12
Greg Miller

これの最も可能性の高い原因は、mongodプロセスがrootユーザーによって開始されたという点です。したがって、ソケットファイル(/tmp/mongodb-27017.sock)はrootユーザーが所有していました。通常、mongodプロセスは専用のユーザーの下で実行され、そのユーザーにはそのファイルを削除する権限がありません。

解決策は、すでにわかっているように、削除することでした。その後、mongodbは正しい許可でそれを再作成することができました。これは、mongodbがinitスクリプトを使用して開始されている限り、または正しいユーザーアカウントで再起動後も持続するはずです。

9
SpooForBrains
$ Sudo mongod

それは私のために問題を解決します

4
CodeBy

UNIXベースのオペレーティングシステムの場合、Bastronautが提供する回答の代わりに、mongodが完全なユーザー権限を持っているフォルダーに保存する.sockファイルを指定することもできます(mongodの実行方法に対応)。 mongodはシャットダウン時に.sockファイルを削除することもできます。 .sockファイルが保存されるデフォルトのフォルダーは「/ tmp」です。別のフォルダーを指定するには、カスタムmongodb構成ファイル(たとえば、「mongodb.conf」)を使用して、以下を追加します。

net:
  unixDomainSocket:
    pathPrefix: "anotherFolder"

その後、次のコマンドでmongodを実行できます。

$ mongod --config /path/to/mongodb.conf

次のドキュメントを読むことができます。 https://docs.mongodb.org/manual/reference/configuration-options/#net.unixDomainSocket.pathPrefix

2
Bafoo