2016-10-24 3 views
1

My 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

Да, db есть. Вот разрешения, если я делаю 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 на «ограниченный». Таким образом, в этом месте ничего не может быть создано (см. Мой комментарий выше).

Чтобы это исправить:

  1. Reboot ваш Mac в безопасный режим
  2. Гото Terminal и вопрос: csrutil отключить
  3. Перезагрузите Mac в нормальный режим
  4. Изменить ограниченный флаг nonrestricted для этого места , В терминале: sudo chflags withoutestricted/private/tmp. И Sudo chflags norestricted/TMP (не уверен, если это одна требуется)
  5. Изменить разрешения, а в случае необходимости: Судо CHMOD 1777/TMP и Судо CHMOD 1777/частные/TMP
  6. Reboot в безопасном режиме снова, и сделать csrutil enable back

Это решило мою проблему.

Смежные вопросы