Я новичок в mongodb. Когда я попытался запустить локальный сервер mongodb с командой mongod
, он не смог запустить и выбросил эту ошибку.
/usr/lib/mongodb/mongod --help for help and startup options
Sat Jun 25 09:38:51 MongoDB starting : pid=1782 port=27017 dbpath=/data/db/ 32-bit
** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
** see http://blog.mongodb.org/post/137788967/32-bit-limitations
Sat Jun 25 09:38:51 db version v1.6.3, pdfile version 4.5
Sat Jun 25 09:38:51 git version: nogitversion
Sat Jun 25 09:38:51 sys info: Linux vernadsky 2.6.24-27-server #1 SMP Fri Mar 12 01:45:06 UTC 2010 i686 BOOST_LIB_VERSION=1_42
Sat Jun 25 09:38:51 [initandlisten] *** warning: spider monkey build without utf8 support. consider rebuilding with utf8 support
Sat Jun 25 09:38:51 [initandlisten] waiting for connections on port 27017
Sat Jun 25 09:38:51 [initandlisten] listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:27017
Sat Jun 25 09:38:51 [initandlisten] addr already in use
Sat Jun 25 09:38:51 [initandlisten] now exiting
Sat Jun 25 09:38:51 dbexit:
Sat Jun 25 09:38:51 [initandlisten] shutdown: going to close listening sockets...
Sat Jun 25 09:38:51 [initandlisten] shutdown: going to flush oplog...
Sat Jun 25 09:38:51 [initandlisten] shutdown: going to close sockets...
Sat Jun 25 09:38:51 [initandlisten] shutdown: waiting for fs preallocator...
Sat Jun 25 09:38:51 [initandlisten] shutdown: closing all files...
Sat Jun 25 09:38:51 closeAllFiles() finished
Sat Jun 25 09:38:51 [initandlisten] shutdown: removing fs lock...
Sat Jun 25 09:38:51 dbexit: really exiting now
Я попытался удалить файл mongod.lock
...
Я побежал mongod --repair
..
Я также изменил права доступа к файлу mongod.lock
.
но ничего не работает, он продолжает показывать ту же ошибку. что я должен делать?
Я также установил git версию 1.7.4.1 но он показывает nogitversion по ошибке.
Try:
sudo service mongod stop
sudo mongod
Чтобы остановить текущую активную службу mongodb, вы можете затем запустить новый
Не убивайте процесс, используя сигнал -9, так как это может повредить: http://www.mongodb.org/display/DOCS/Starting+and+Stopping+Mongo#StartingandStoppingMongo-SendingaUnixINTorTERMsignal
Используйте sudo killall -15 mongod
вместо
killall mongod
делает то же самое. -15
говорит killall
отправить сигнал SIGTERM, что он делает по умолчанию.
Андреас Юнг:
"Сб июн 25 09:38:51 [initandlisten] listen(): bind() failed errno: 98 Адрес уже используется для сокета: 0.0.0.0:27017
является самоязычным.
Еще один экземпляр mongod уже запущен и выделяет порт по умолчанию MongoDB, который равен 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
Сб июн 25 09:38:51 [initandlisten] listen(): bind() failed errno: 98 Адрес уже используется для сокета: 0.0.0.0:27017
является самоязычным.
Еще один экземпляр mongod уже запущен и выделяет порт по умолчанию MongoDB, который равен 27017.
Либо убить другой процесс, либо использовать другой порт.
Узнайте из netstat, в каком процессе выполняется порт mongodb (27017)
Команда:
sudo netstat -tulpn | grep :27017
Выход будет:
tcp 0 0 0.0.0.0:27017 0.0.0.0:*
LISTEN 6432/mongod
В моем случае "6432" - это pid, в вашем случае это может быть другим. Затем уничтожьте этот процесс, используя следующую команду:
sudo kill <pid>
Вот оно!
У вас уже есть процесс. Вы можете убить его командой:
killall mongod
Использование:
sudo killall mongod
Он остановит сервер.
Затем запустите снова:
mongod
он должен работать.
sudo
Вы хотите сделать killall -15 mongod
, потому что он все еще запущен, "Адрес уже используется для сокета: 0.0.0.0:27017". Затем вы можете снова запустить mongod
.
killall mongod
?
No matching processes belonging to you were found
Попробуйте либо killall -15 mongod/killall mongod Даже после этого, если это не работает, удалите папку хранилища db, введя следующие команды: sudo rm -rf/data/db sudo mkdir/data/db sudo chmod 777/data/db
Попробуйте использовать другой порт, если вы не можете найти какие-либо текущие запущенные процессы или убить их не работает. Например, попробуйте 27018, потому что по умолчанию 27017.
mongod --port 27018
Я нашел это с помощью команды mongod --help
OS X. Монитор активности, найдите mongod, пересечь его. затем снова запустите mongod. проблема решена.
MongoDB не может запускаться в основном из-за нечистого отключения. Чтобы исправить ошибку, удалите файл mongod.lock. Этот файл находится в папке с данными.
Узнайте, где находится ваша папка данных, просматривая файл mongodb.conf или mongod.conf. (Conf file под /etc в системах Linux.)
# Where and how to store data.
storage:
dbPath: /var/lib/mongodb
Например, используя указанную выше конфигурацию, файл находится в /var/lib/mongodb/mongod.lock. Просто удалите его и перезапустите mongodb.
Откройте терминал и введите:
mkdir -p /data/db
Затем введите:
mongod
Проверьте журналы на /var/log/mongodb/mongod.log и попытайтесь вывести ошибку. В моем случае это было
Не удалось отсоединить файл сокета /tmp/mongodb -27017.sock errno: 1 Операция не разрешена
Удалено/tmp/mongodb-27017.sock, и оно сработало.
У меня была та же проблема, что я пытался открыть новый экземпляр mongod, и он сказал, что он уже запущен.
Я проверил docs и сказал, чтобы напечатать
mongo
use admin
db.shutdownServer()
Я столкнулся с той же проблемой. Хотя служба mongodb
не запущена, журнал показал сообщение address already in use
.
$netstat -tulpn | grep :27017
ничего не возвращает
В ходе дальнейшего анализа выяснилось, что проблема связана с файлом блокировки. Служба работает нормально, после удаления файла блокировки и перезапуска.
$grep "dbpath" /etc/mongodb.conf
dbpath =/var/lib/mongodb
$ls /var/lib/mongodb/mongod.lock
$service mongod start
Возможно, сервер уже запущен. Проверьте его с помощью команды mongo.
попробуйте
/usr/lib/mongodb/mongod.exe --dbpath c: data\db
- dbpath (должен следовать путь вашего db)
Если вы впервые запускаете mongo, вы можете сначала задать путь
mongod --dbpath <path to the directory>
Похоже, что такая же ошибка отображается в журналах, когда вам не хватает настройки среды LC_ALL. Это запутывает, но вы можете выполнить клиент mongo
, чтобы увидеть, что это проблема.
(Если вы используете linux), если
mongod --shutdown --config=path/to/your/configFile.conf
или
mongod --repair --config=path/to/your/configFile.conf
не удалось устранить проблему, выйти из системы и повторно войти в систему. Это решило мою проблему.
Или вы можете убить процесс вручную из терминала, я думаю.
Показывает ошибку listen(): bind() failed errno: 98 Адрес уже используется для сокета: 0.0.0.0:27017 то есть адрес 27017 уже используется какой-либо другой услугой. пожалуйста, проверьте это "netstat -apt | grep" 27017 "" Команда