Монгод не начнет
Я установил 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