2016-10-24 61 views
1

我的MongoDB在Mac上突然無法啓動。這些消息:Mac OSX MongoDB在啓動期間無法設置套接字

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 

我嘗試這樣做:

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

有什麼建議?

+0

它有權限寫在'/ Users/user1/mongodb/data/db'上嗎?這個文件夾是否存在? –

+0

是的,數據庫在那裏。這裏是權限,如果我做ls -ld db:drwxrwxrwx 26 user1 staff 884 Oct 14 16:22 db – user523234

+0

您是否嘗試將mongod作爲「user1」啓動,或者以root身份啓動? – andresk

回答

0

在當天早些時候,我的機器自動更新了OS X El Capitan 2016-002的安全性。此更新將/ tmp標籤和/ private/tmp文件夾的標誌更改爲「restricted」。因爲這樣可以在該位置創建任何內容(請參閱上面的註釋)。您的Mac

  1. 重新啓動到安全模式
  2. 轉到終端和問題:

    爲了解決這個問題csrutil禁用

  3. 重新啓動你的Mac到正常模式
  4. 更改限制標誌,不受限制的該位置。在終端中:sudo chflags norestricted/private/tmp。再次須藤搭配chmod 1777/tmp和須藤搭配chmod 1777 /私營/ tmp目錄
  5. 重新啓動到安全模式,並做了:和須藤的chflags norestricted/tmp目錄(不知道是否需要此一個)
  6. 更改權限,以及如果需要的話csrutil啓用回

這解決了我的問題。