Монго - не удалось подключиться к серверу 127.0.0.1:27017


164

Я приехал из riak и redis, где у меня никогда не было проблем с запуском этих сервисов или взаимодействием.

Это распространенная проблема с монго, и я довольно невежественен. Перезапуск не помогает. Я новичок в Монго.

mongo
MongoDB shell version: 2.2.1
connecting to: test
Fri Nov  9 16:44:06 Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91
exception: connect failed

Это то, что я вижу в журналах.

 now open)
Fri Nov  9 16:44:34 [conn47] end connection 10.29.16.208:5306 (1 connection now open)
Fri Nov  9 16:45:04 [initandlisten] connection accepted from 10.29.16.208:5307 #48 (2 connections now open)
Fri Nov  9 16:45:04 [conn48] end connection 10.29.16.208:5307 (1 connection now open)
Fri Nov  9 16:45:04 [initandlisten] connection accepted from 10.29.16.208:5308 #49 (2 connections now open)
Fri Nov  9 16:45:04 [conn49] end connection 10.29.16.208:5308 (1 connection now open)
Fri Nov  9 16:45:34 [initandlisten] connection accepted from 10.29.16.208:5316 #50 (2 connections now open)
Fri Nov  9 16:45:34 [conn50] end connection 10.29.16.208:5316 (1 connection now open)
Fri Nov  9 16:45:34 [initandlisten] connection accepted from 10.29.16.208:5317 #51 (2 connections now open)
Fri Nov  9 16:45:34 [conn51] end connection 10.29.16.208:5317 (1 connection now open)
Fri Nov  9 16:46:04 [initandlisten] connection accepted from 10.29.16.208:5320 #52 (2 connections now open)
Fri Nov  9 16:46:04 [conn52] end connection 10.29.16.208:5320 (1 connection now open)
Fri Nov  9 16:46:04 [initandlisten] connection accepted from 10.29.16.208:5321 #53 (2 connections now open)
Fri Nov  9 16:46:04 [conn53] end connection 10.29.16.208:5321 (1 conn

2
Поскольку IMO это не имеет никакого отношения к программированию как таковому, я бы порекомендовал вам задать этот вопрос на serverfault.com .
Cimnine

2
Я также столкнулся с той же проблемой. Его пользователь монго Не может создать папку в C: / data / db Я следовал этому tky mkyong.com/mongodb/how-to-install-mongodb-on-windows
STEEL

Я столкнулся с той же ошибкой при использовании ноутбука моей компании и установке MongoDB на C :. Из-за административных привилегий и того факта, что мне каждый раз, когда я устанавливаю что-либо или изменяю что-либо в C:), меня просят ввести имя пользователя и пароль администратора, поэтому я не смог заставить работать mongodb. После установки его на D: все заработало нормально.
Paranza

Ответы:


47

Эта ошибка - то, что вы увидите, если оболочка mongo не может общаться с сервером mongod.

Это может быть связано с неправильным адресом (хост или IP) или тем, что он не работает. Стоит отметить, что предоставленная трассировка журнала не покрывает «Пт 9 ноября 16:44:06» вашего mongo timestamp.

Ты можешь:

  1. Укажите аргументы командной строки (если есть), используемые для запуска вашего процесса mongod
  2. Укажите активность файла журнала при запуске mongod, а также журналы при попытке запуска оболочки mongo?
  3. Подтвердите, что ваш процесс mongod запускается на той же машине, что и оболочка mongo?

283

Обычно это вызвано тем, что вы не запустили процесс mongod, прежде чем пытаться запустить оболочку mongo.

Запустить mongod сервер

mongod

Откройте другое окно терминала

Начать монго оболочки

mongo

3
Этот случай сработал для меня, я должен был сделать ~> sudo mongod --dbpath / dbpathlocation, а затем открыл новый терминал для запуска mongo ...
Саджи

5
что работало для меня на macOS Сьерра была sudo mongodи тогдаmongo
Амин Джафари

Мне пришлось создать каталог / data / db, прежде чем запускать mongod
студент колледжа

Я не могу поверить, что все, что мне нужно было сделать, это запустить mongodв фоновом режиме или другой оболочке перед запуском mongo. Привет Рави Хамсе !
Карим Джейроуди

Работал на меня как шарм!
Собхит Шарма

86

Решено.

Эта проблема может быть решена с помощью указанных ниже 4 шагов

1) Удалить файл .lock

sudo rm /var/lib/mongodb/mongod.lock 

2) отремонтировать mongodb

mongod -–repair

3) запустить сервер mongod

sudo service mongod start 

4) запустить клиент Монго

mongo

Для получения более подробной информации посмотрите на http://shakthydoss.com/error-couldnt-connect-to-server-127-0-0-127017-srcmongoshellmongo-js-exception-connect-failed/

http://shakthydoss.com/technical/error-couldnt-connect-to-server-127-0-0-127017-srcmongoshellmongo-js-exception-connect-failed/


4
Просто интересно, что такое /var/lib/mongodb/mongod.lock и что с ним не так?
августа

Пункт 2 в Ubuntu 18.04mongod --repair
Aline Matos

43

Этот метод работает, только если вы хотите восстановить ваши файлы данных без сохранения оригинальных файлов

Чтобы узнать, где находится dbpath, vim /etc/mongodb.conf

проверить опцию dbpath =

(У меня есть dbpath = / var / lib / mongodb)

По умолчанию: / data / db /

Типичные местоположения включают в себя: / srv / mongodb, / var / lib / mongodb или / opt / mongodb.

Замените / var / lib / mongodb вашим dbpath

sudo rm /var/lib/mongodb/mongod.lock
sudo mongod --dbpath /var/lib/mongodb/ --repair
sudo mongod --dbpath /var/lib/mongodb/ --journal

(Убедитесь, что вы оставляете свой терминал работающим, в котором вы работали над строками, не нажимайте 'Ctrl + c' или выходите из него.) Введите команду для запуска mongo сейчас в другом окне.

Надеюсь, что это работает для вас ! для тех, кто хочет восстановить ваши файлы данных при сохранении оригинальных файлов Mongo Recovery


1
работать на Ubuntu. - Журнал исправил мою проблему. Что на самом деле это делает? для чего нужен - журнал?
grep

Работал у меня на fedora 20. Можем ли мы закрыть первое окно терминала?
Хаям Гондал

27

MAC OS

Проверить статус

brew services list

Что-то вроде:

Name    Status  User Plist
mongodb stopped  

Начни это

brew services start mongodb

Попробуйте снова

mongo или mongo --port 27017


1
Это помогло мне +1.
Сандип

Не работал для меня Я боролся с этим MongoDB уже час. Вот это да!!!
Гленн

это помогло мне, спасибо ..
Iam ByeBlogs

15

В моем случае:

Сначала я открываю конфигурационный файл

sudo vi /etc/mongodb.conf

Комментарий IP и порт, как это

#bind_ip = 127.0.0.1
#port = 27017

Затем перезапустите mongodb

sudo service mongodb restart
sudo service mongod restart

Наконец то это работа: D

finn@Finn ~ $ mongo
MongoDB shell version: 2.4.9
connecting to: test
> exit

Удаление ip / порта у меня не сработало. Это фактически сломало сервер еще больше. Служба отказалась начать снова ...
Cerin

1
Будьте осторожны с bind_ip. Если вы это закомментируете, то разрешите удаленные подключения к вашей базе данных, что, очевидно, является ужасной идеей, если у вас нет настроек безопасности и аутентификации. Я считаю, что у MongoDB нет пользователей или паролей по умолчанию, поэтому вам нужно знать об этом.
agm1984

Работайте и для меня, но не знаете о безопасности после комментария @ agm1984, я просто буду использовать это в режиме разработки и после того, как я буду использовать Atlas Cloud of Mongodb, в моем случае, более безопасный (думаю, с моим плохим сервером навыки: D)
Adrien V

1
@AdrienV конечно, рискованно, если вы удаляете локальную привязку IP, потому что она позволяет получить доступ из Интернета. Это всего лишь обходной путь для сервера разработки.
Финн,

Для bind_ip был установлен дополнительный неизвестный ip. Удаление его решило ошибку / db / data ... ufff
zevero

14

Убедитесь, что ваш монго работает. Я исправил эту проблему, пытаясь восстановить mongodb, там я обнаружил, что каталог, необходимый для работы db, не был создан. Это показывает эту ошибку

Тип: mongodэто покажет ошибку

exception in initAndListen: 29 Data directory /data/db not found., terminating

Ошибка возникает из-за того, что dbpath /data/db/(конфигурация по умолчанию) не существует. Вам нужно создать папку с данными и установить для нее разрешение.

Затем я создаю папку в моей системе по команде

sudo mkdir -p / data / db / и sudo chown id -u/ data / db

затем я снова запускаю монго, и это сработало.


14

Немного поздно с ответом, но я столкнулся с той же проблемой

Ниже приведены шаги, которые помогли мне.

  1. Перейти к C: \
  2. Создать папку с данными
  3. В «data» создайте папку «db»
  4. открыть терминал (CMD) -> перейти к EX: " c:\MongoDB\Server\3.4\bin"
  5. введите mongod => это запустит сервер mongo (оставьте его открытым)

Запуск с использованием графического интерфейса, EX "robomongo"

Или

открыть новый терминал (CMD) -> перейти к EX: " c:\MongoDB\Server\3.4\bin" введите команду "mongo"


12

Я пользователь Windows, и я установил MongoDB в ноябре 2018 года, и я не хотел устанавливать каталоги data / db. Но через несколько дней, когда я открываю, появляется сообщение об ошибке:

MongoDB shell version v4.0.4
connecting to: mongodb://127.0.0.1:27017
2018-12-05T20:42:40.108+0530 E QUERY    [js] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: No connection could be made because the target machine actively refused it. :
connect@src/mongo/shell/mongo.js:257:13
@(connect):1:6
exception: connect failed

Затем я попытался исправить, используя все вышеприведенные ответы, но ничего не получилось. Когда я попытался запустить Mongod, он сказал

MongoDB starting : pid=12220 port=27017 dbpath=C:\data\db\ 64-bit host=bla

Я пытался изменить путь к БД (для программных файлов) через файловую систему, а также с помощью cmd, но они не сработали.

Решение, которое сработало для меня:

Открыл вкладку « Диспетчер задач» ( ctrl + shift + esc) -> « Службы », и была строка MongoDB с остановленным статусом . Затем я щелкнул правой кнопкой мыши и нажал кнопку запуска, и все работает отлично :) .


6

Если все вышеперечисленное решение не работает: зайдите в service ( start>search>services) и запустите службу mongodb. Затем в командной строке cmd после перехода в bin введите:/>mongo


5

Чтобы подключиться к Монго, мы должны сначала запустить услуги «Монгод». следующий вывод вы можете увидеть:

$ mongod
2017-03-05T00:31:39.055+0530 I CONTROL  [initandlisten] MongoDB starting : pid=1481 port=27017 dbpath=/data/db 64-bit host=Prabhu-Nandans-Mac.local
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] db version v3.4.2
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] git version: 3f76e40c105fc223b3e5aac3e20dcd026b83b38b
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2k  26 Jan 2017
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] allocator: system
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] modules: none
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] build environment:
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten]     distarch: x86_64
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten]     target_arch: x86_64
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] options: {}
2017-03-05T00:31:39.056+0530 W -        [initandlisten] Detected unclean shutdown - /data/db/mongod.lock is not empty.
2017-03-05T00:31:39.057+0530 I -        [initandlisten] Detected data files in /data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2017-03-05T00:31:39.057+0530 W STORAGE  [initandlisten] Recovering data from the last clean checkpoint.
2017-03-05T00:31:39.057+0530 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=3584M,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] 
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] 
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] 
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
2017-03-05T00:31:39.643+0530 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2017-03-05T00:31:39.643+0530 I NETWORK  [thread1] waiting for connections on port 27017
2017-03-05T00:31:40.008+0530 I FTDC     [ftdc] Unclean full-time diagnostic data capture shutdown detected, found interim file, some metrics may have been lost. OK
2017-03-05T00:32:03.832+0530 I NETWORK  [thread1] connection accepted from 127.0.0.1:49806 #1 (1 connection now open)
2017-03-05T00:32:03.833+0530 I NETWORK  [conn1] received client metadata from 127.0.0.1:49806 conn1: { application: { name: "MongoDB Shell" }, driver: { name: "MongoDB Internal Client", version: "3.4.2" }, os: { type: "Darwin", name: "Mac OS X", architecture: "x86_64", version: "16.4.0" } }
2017-03-05T00:32:08.376+0530 I -        [conn1] end connection 127.0.0.1:49806 (1 connection now open)

После этого откройте другой терминал и просто введите «Монго».

Ниже приведен вывод, который вы можете увидеть:

$ mongo
MongoDB shell version v3.4.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.2

Ваша проблема решена :)


4

У меня тоже есть та же проблема, что и я исправил эти две строки кода. Надеюсь, поможет

systemctl start mongod
systemctl enable mongod

Исправлена ​​моя проблема!
S.M_Emamian

3

После многих поисков я столкнулся с той же проблемой, и решил ее следующим образом:

sudo service mongodb stop 

sudo rm /var/lib/mongodb/mongod.lock 

sudo mongod --repair --dbpath /var/lib/mongodb 

sudo mongod --fork --logpath /var/lib/mongodb/mongodb.log --dbpath /var/lib/mongodb 

sudo service mongodb start

это сработало! но это временно, когда я перезагружаю свою систему, она больше не запускается
Predator X


2

Это происходило со мной сегодня, и я решил это следующим образом.

Машина: Я использую машину с Windows 10 и скачал последнюю версию MongoDB - Community.

Итак, проблема была, у меня не было C:\data\db создал.

Не создавая C:\data\db, я открыл терминал CMD и запустил базу данных, используя mongodкоманду на терминале

C: \ YourInstallationPath \ Bin> mongod

И когда я уволен mongo команду, у меня возникла проблема.

Твист, я создал необходимые папки, но все еще получал проблему. И это потому, что сервер Монго уже работает. Чтобы исправить это, я mongodснова запустил команду, и она автоматически ссылается наC:\data\db .

Другие пользователи предложили добавить, C:\data\dbно не говорили о выполнении mongodснова, что точно решило мою проблему.


2

У меня была такая же проблема, чтобы подключить mongodb после установки, используя brew на macOS.

Проблема была также, mongod.lockно до того, как у меня был установлен mongodb 3.6 и каталог базы данных, /usr/local/var/mongodbи в нем были старые файлы иmongod.lock

Просто я переместил свои старые файлы базы данных в другую папку и удалил все из /usr/local/var/mongodb

Затем перезапустил:

brew services restart mongodb

И теперь работает нормально.


2

в моем случае в Windows и Ubuntu, мне нужно было создать /data/db папку в корне. В Ubuntu мне нужна была еще одна опция; дать разрешения на каталог.

окна

mkdir c:/data/db

убунт:

sudo mkdir -p /data/db
sudo chmod 700 /data/db

тогда беги

sudo service mongod start

чек

sudo service mongod status

а потом беги

mongo

2

Я получил эту ошибку в Ubuntu, но вы можете попробовать с помощью следующей команды:

sudo service mongod start

1

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

export LC_ALL=C

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

mongod --fork --logpath /var/log/mongodb.log --auth --port 27017 --dbpath /var/lib/mongodb/admin

1

Создайте папку C: data / db, если она еще не существует на вашем компьютере. Оказывается, MongoDB требует наличия этой структуры папок «data / db» для запуска. Я надеюсь, что это поможет кому-то.


1

Причиной для меня было пространство - запустите это в консоли:

df -h

или более конкретно:

du -hs /var/lib/mongodb/ 

проверить использование диска. Если это ~ 99% - просто очистите место и попробуйте снова!


1

Сначала перейдите к c:\mongodb\bin>включению mongoDB, если вы видите в консоли, что mongo прослушивает порт 27017, все в порядке. Если нет, закройте консоль и создайте папку c:\data\dbи снова запустите mongod.


1

Если, возможно, не все решение, описанное выше, поможет вам. Где-то внизу вы, возможно, установили соединение с вашей локальной базой данных mongodb через бродячие ящики.

  1. vagrant up и затем ssh на ваш бродячий компьютер, на котором вы установили соединение с mongodb (vagrant ssh vagrant_box_name)
  2. закомментируйте строку bind_ip из /etc/mongod.conf, используя # (sudo nano /etc/mongod.conf)
  3. перезапустите службу демона mongodb (sudo service mongod restart) вуаля ...

1

Запустите сервис monogdb, используя

sudo service mongod start 

затем из нового окна или терминала запустить клиент Монго, используя

mongo

0

Удалите файл mongod.lock. И запустить "Mongod-ремонт". удалить / переустановить службу Mongod исправил эту проблему для меня.

Спасибо.



0

Наконец я получил это по-простому ..

откройте терминал и перейдите в местоположение mongodb. В моем случае это

e:\mongodb\bin> 

и введите следующую команду и нажмите Enter.

mongod --config e:\mongodb\mongo.config

Откройте другой терминал и запустите mongodb, используя

mongo.exe

Вот и все .. вы можете использовать монго


0

Это старый вопрос, но, как новичок, я решил добавить, что (используя Webstorm) вам нужно нажать на Mongo Explorer (вкладка в правой части вашего окна). Оттуда:

-Нажмите настройки. -Нажмите кнопку обзора (выглядит как кнопка с надписью "..."). -Перейти к программным файлам> MongoDB> Сервер> 3.4> bin> mongo.exe (ваша версия может отличаться от 3.4) -После этого, нажмите зеленый знак плюс справа. Откроется окно -Введите имя в слот "Метка". -Нажмите применить.

Теперь вы должны быть на связи. Ввод "mongod" в терминале не достаточно. Вы должны сделать вышеупомянутые шаги также.

Заранее извиняюсь перед теми, кто не использует Webstorm! Не уверен насчет шагов с использованием других IDE.


0

если вы устанавливаете с помощью brew (на osx), сначала запустите sudo mkdir /data/db демон mondoDB, набрав mongod(оставьте его открытым), а затем запустите mongo, набрав mongoв новой вкладке терминала


0

Просто создайте папку с именем «data» на диске C, а внутри папки с данными создайте еще одну папку с именем «db». Затем выполните mongod.exe :)


Что заставляет вас думать, что у пользователя есть Windows или он не смог установить MongoDB?
Немо
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.