2016-10-24 8 views
1

MacのMongoDBが突然起動しませんでした。Mac OSX MongoDBが起動時にソケットを設定できませんでした

Mac1:mongodb user1$ ls -ld /tmp 
[email protected] 1 root wheel 11 Feb 23 2016 /tmp -> private/tmp 

どれ提案:私はこれを試してみました

2016-10-24T11:13:04.080-0500 I CONTROL [initandlisten] MongoDB starting : pid=365 port=27017 dbpath=/Users/user1/mongodb/data/db 64-bit host=Mac1.attlocal.net 
2016-10-24T11:13:04.081-0500 I CONTROL [initandlisten] db version v3.2.6 
2016-10-24T11:13:04.081-0500 I CONTROL [initandlisten] git version: 05552b562c7a0b3143a729aaa0838e558dc49b25 
2016-10-24T11:13:04.081-0500 I CONTROL [initandlisten] allocator: system 
2016-10-24T11:13:04.081-0500 I CONTROL [initandlisten] modules: none 
2016-10-24T11:13:04.081-0500 I CONTROL [initandlisten] build environment: 
2016-10-24T11:13:04.081-0500 I CONTROL [initandlisten]  distarch: x86_64 
2016-10-24T11:13:04.081-0500 I CONTROL [initandlisten]  target_arch: x86_64 
2016-10-24T11:13:04.081-0500 I CONTROL [initandlisten] options: { config: "mongod.conf", storage: { dbPath: "/Users/user1/mongodb/data/db" } } 
2016-10-24T11:13:04.082-0500 E NETWORK [initandlisten] listen(): bind() failed errno:1 Operation not permitted for socket: /tmp/mongodb-27017.sock 
2016-10-24T11:13:04.082-0500 E STORAGE [initandlisten] Failed to set up sockets during startup. 
2016-10-24T11:13:04.083-0500 I CONTROL [initandlisten] dbexit: rc: 48 

:これらのメッセージですか?

+0

'/ Users/user1/mongodb/data/db'に書き込む権限がありますか?このフォルダは存在しますか? –

+0

はい、dbはあります。 ls -ld dbを実行した場合のアクセス権は次のとおりです。drwxrwxrwx 26 user1 staff 884 Oct 14 16:22 db – user523234

+0

mongodを "user1"として起動しようとしていますか? – andresk

答えて

0

私のマシンは、以前のように、OS X El Capitan 2016-002のために自動的にセキュリティアップデートされました。このアップデートでは、/ tmp labelと/ private/tmpフォルダのフラグが "restricted"に変更されました。そのような場所では何も作成できません(上記の私のコメントを参照)。

は、この問題を解決するには、次の

  1. 再起動してMacをセーフモードで
  2. 後藤ターミナルと問題:
  3. は、その場所のための非制限に通常モードへ
  4. 変更制限フラグをお使いのMacを再起動して無効にcsrutil 。端末:sudo chflags norestricted/private/tmpにあります。そして、sudoのchflags NORESTRICTED/tmpに(ない、このいずれかが必要とされているかどうかわから)
  5. 変更の権限だけでなく、必要に応じてします。sudo chmodの1777を/ tmpとはsudo chmodの1777 /プライベート/ tmpの
  6. を再起動し、セーフモードに再び、とやりますcsrutil enable back

それが私の問題を解決しました。

関連する問題