Монго - не удалось подключиться к серверу 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
Tampa
источник
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/

shakthydoss
источник
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

poorva
источник
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 с остановленным статусом . Затем я щелкнул правой кнопкой мыши и нажал кнопку запуска, и все работает отлично :) .

Blasanka
источник
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

Вы можете попробовать с помощью следующей команды:

sudo service mongod start

Шивам Кумар Чатурведи
источник
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
edencorbin
источник
1

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

Амин Балогун
источник
1

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

df -h

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

du -hs /var/lib/mongodb/ 

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

tsveti_iko
источник
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 исправил эту проблему для меня.

Спасибо.

Tun
источник
0

У меня была такая же ошибка при подключении к Mongo на AWS EC2. Это то, что решило это https://serverfault.com/a/347159/62381 Удалите bind_ip из файла конфигурации

blueskin
источник
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?
Немо