Монгод не начнет

Я установил MongoDB с помощью команды Mac Homebrew, но когда я запустил mongod

Он не распознал мой мой терминал:/

Если я набираю export PATH=$PATH:/usr/local/mongodb/bin, тогда запустите mongod, он запустится, но быстро выйдет из

mongod --help for help and startup options
Sun Jan 20 18:59:25 [initandlisten] MongoDB starting : pid=59800 port=27017 dbpath=/data/db/ 64-bit host=Kevin-Tucks-MacBook-Pro.local
Sun Jan 20 18:59:25 [initandlisten] db version v2.0.4, pdfile version 4.5
Sun Jan 20 18:59:25 [initandlisten] git version: 329f3c47fe8136c03392c8f0e548506cb21f8ebf
Sun Jan 20 18:59:25 [initandlisten] build info: Darwin erh2.10gen.cc 9.8.0 Darwin Kernel Version 9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_40
Sun Jan 20 18:59:25 [initandlisten] options: {}
Sun Jan 20 18:59:25 [initandlisten] journal dir=/data/db/journal
Sun Jan 20 18:59:25 [initandlisten] recover : no journal files present, no recovery needed
Sun Jan 20 18:59:25 [initandlisten] preallocateIsFaster=true 2.38
Sun Jan 20 18:59:25 [websvr] ERROR: listen(): bind() failed errno:48 Address already in use for socket: 0.0.0.0:28017
Sun Jan 20 18:59:25 [websvr] ERROR:   addr already in use
Sun Jan 20 18:59:25 [initandlisten] ERROR: listen(): bind() failed errno:48 Address already in use for socket: 0.0.0.0:27017
Sun Jan 20 18:59:25 [initandlisten] ERROR:   addr already in use
Sun Jan 20 18:59:25 [initandlisten] now exiting
Sun Jan 20 18:59:25 dbexit: 
Sun Jan 20 18:59:25 [initandlisten] shutdown: going to close listening sockets...
Sun Jan 20 18:59:25 [initandlisten] shutdown: going to flush diaglog...
Sun Jan 20 18:59:25 [initandlisten] shutdown: going to close sockets...
Sun Jan 20 18:59:25 [initandlisten] shutdown: waiting for fs preallocator...
Sun Jan 20 18:59:25 [initandlisten] shutdown: lock for final commit...
Sun Jan 20 18:59:25 [initandlisten] shutdown: final commit...
Sun Jan 20 18:59:25 [initandlisten] shutdown: closing all files...
Sun Jan 20 18:59:25 [initandlisten] closeAllFiles() finished
Sun Jan 20 18:59:25 [initandlisten] journalCleanup...
Sun Jan 20 18:59:25 [initandlisten] removeJournalFiles
Sun Jan 20 18:59:25 [initandlisten] shutdown: removing fs lock...
Sun Jan 20 18:59:25 dbexit: really exiting now

Я попытался перезапустить свою оболочку, но если я снова попытаюсь запустить mongod, он будет возвращен как непризнанный и потребует, чтобы я перепечатал его в export PATH=$PATH:/usr/local/mongodb/bin.

Ответ 1

Кайл: "Похоже, что манго уже запущено или другой процесс использует порт 27017"

В этом случае введите следующую команду

ps wuax | grep mongo

Вы должны увидеть что-то похожее на это

User           31936   0.5 0.4 2719784 35624   ?? S     7:34pm   0:09.98 mongod
User           31945   0.0 0.0 2423368   184 s000 R+   8:24pm   0:00.00 grep mongo

Теперь введите команду kill для экземпляра mongod (в этом случае 31936):

kill 31936

Ответ 2

Я только что установил brew в osx (10.9.3), mongod (2.6.1) и имел ту же проблему. Def не запускает вторую копию.

$ lsof -i | grep 2701 

не отображается открытый порт.

Я нашел следующее:

Конфигурационный файл brew по умолчанию (/usr/local/etc/mongod.conf) содержит строку:

bind_ip = 127.0.0.1,<my-machine>.local

Если вы отредактируете этот файл и измените строку на одно из следующих значений:

bind_ip = 127.0.0.1
or
bind_ip = <my-machine>.local

Затем перезапустите службу с помощью приведенной ниже команды, она должна запускаться, как ожидалось.

$ brew services restart mongodb

Вы можете проверить успех или неудачу, закрыв файл журнала в другом окне при запуске

$ tail -f /usr/local/var/log/mongodb/mongo.log 

Кажется, он пытается открыть оба указанных здесь адреса, и оба они разрешают 127.0.0.1, поэтому мы всегда получаем отказ, когда он пытается открыть второй порт, а затем отключает все это.

Ответ 3

Sun Jan 20 18:59:25 [websvr] ОШИБКА: addr уже используется Sun Jan 20 18:59:25 [initandlisten] ОШИБКА: listen(): bind() failed errno: 48 Адрес уже используется для сокета: 0.0.0.0:27017 Sun Jan 20 18:59:25 [initandlisten] ОШИБКА: addr уже используется

Похоже, что mongo уже запущен или другой процесс использует порт 27017

Ответ 4

это решение работает для меня. Я использую версию mongodb 3.2

i установить путь к,

/usr/local/bin

и я делаю каталог данных mongodb в /data/db и устанавливаю разрешение для моей учетной записи myown. Этот учебник из mkyong действительно полезен.

Ответ 5

Для любого из людей, которые приземлились здесь, это было решено (по крайней мере, с моей стороны) путем остановки уже запущенного сервиса mongodb:

brew services stop mongodb

а потом бегом mongod.

Ответ 6

Чтобы mongod не был в вашей PATH, похоже, что логика поддержки была исправлена ​​пару раз с той версии, в которой вы находитесь. При обновлении эта проблема может быть исправлена ​​автоматически.

Как уже говорили другие, указанная ошибка указывает, что другой процесс уже использует сконфигурированный порт. Одна из возможностей заключается в том, что в прошлом вы запускали команду, которую Homebrew предоставил вам, чтобы установить MongoDB как LaunchAgent. В этом случае эта команда должна отменить это, что позволит вам запустить его из командной строки.

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist

Ответ 7

Это не позволит убить, когда вы настроили автозапуск, поэтому удалите файл блокировки и восстановите его (Mac OSX).

 cd /data/db
 rm mongod.lock
 sudo mongod --repair