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

111

Я прихожу из 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 .
  • 2
    Я также столкнулся с той же проблемой. Его пользователь монго не может создать папку в C: / data / db Я следовал этому tky mkyong.com/mongodb/how-to-install-mongodb-on-windows
Показать ещё 1 комментарий
Теги:
pymongo

30 ответов

36
Лучший ответ

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

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

Ты можешь:

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

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

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

mongod

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

Запустите оболочку mongo

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

Решено.

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

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

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

2) ремонт монгодба

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/

  • 0
    Благодарю. работает над убунту 14.10.
  • 0
    не работал для меня
Показать ещё 1 комментарий
35

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

Чтобы найти, где находится 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 recover

  • 0
    работать на Ubuntu. - Журнал исправил мою проблему. Что на самом деле это делает? для чего - журнал?
  • 0
    Работал у меня на fedora 20. Можем ли мы закрыть первое окно терминала?
10

Убедитесь, что ваш монго работает. Я исправил эту проблему, пытаясь восстановить 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

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

10

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

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

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
  • 0
    Круто, это сработало для меня. Спасибо
  • 0
    Удаление ip / порта у меня не сработало. Это на самом деле сломало сервер еще больше. Служба отказалась запускаться снова ...
Показать ещё 1 комментарий
7

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

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

  • Перейдите к C:\
  • Создать папку "данные"
  • В "данных" создайте папку "db"
  • открытый терминал (CMD) → перейти к EX: "c:\MongoDB\Server\3.4\bin"
  • введите mongod = > это запустит сервер mongo (оставьте его открытым)

Запуск с использованием GUI, EX "robomongo"

Или

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

  • 0
    это сработало для меня. большое спасибо
4

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

3

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

$ 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".

После вывода вы можете увидеть:

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

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

1

Я пользователь Windows, и я установил MongoDB в ноябре 2018 года, и я не хотел настраивать каталоги данных /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

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

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

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

1

@shakthydoss ответ работал нормально один раз, но после второй проблемы.lock не было, я просто создал пустой, и он работал нормально. Поэтому проверьте, нет ли у вас.

Если вы используете командную строку:

cd /var/lib/mongodb

ls

"ls" перечисляет все файлы в папке, если mongod.lock не существует, то:

sudo touch mongod.lock

Наконец, запустите команду.

mongod –-repair

sudo service mongod start 

Служба Mongo должна работать нормально.

1

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

systemctl start mongod
systemctl enable mongod
1

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

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

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

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

C:\YourInstallationPath\Bin> mongod

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

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

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

1

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

sudo service mongod start

1

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

1

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

df -h

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

du -hs /var/lib/mongodb/ 

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

1

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

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
0

Шаги для решения этой проблемы в ОС Windows:

  1. Удалите файл mongod.lock из C:\Program Files\MongoDB\Server\4.0\data
  2. Нажмите на mongod в папке C:\Program Files\MongoDB\Server\4.0\bin
  3. Нажмите mongo в C:\Program Files\MongoDB\Server\4.0\bin, чтобы запустить оболочку mongodb
0

У меня была такая же проблема, я удалил файл E:\Mongo Data Files\db\mongod.lock, так что он начал работать. проблема связана с неправильным отключением сервера. поэтому файл блокировки не является чистым.

0

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

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

Во-первых, вам нужно запустить сервер mongod, а затем в другом терминале вы должны запустить оболочку mongo.

Для запуска, сервер mongo

1. Если вы используете путь по умолчанию (data/db), простейший обжиг mongod в терминале

2. Если ваш путь не является данным /db, тогда вы командуете следующим образом: mongod --dbpath "здесь ваш путь".

Для запуска оболочки манго, просто выстрелил монго в другой терминал

Если вы ожидаете подключения к порту 27017, ваше монго успешно начнется.

Надеюсь, вы можете получить мою точку зрения

0

Просто создайте папку с именем "data" на диске C и внутри папки данных создайте другую папку с именем "db". Затем выполните mongod.exe :)

  • 0
    Что заставляет вас думать, что у пользователя есть Windows или он не смог установить MongoDB?
0

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

0

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

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

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

Извиняюсь заранее тем, кто не использует Webstorm! Не уверены в действиях с помощью других IDE.

0

Наконец, я понял, что это просто.

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

e:\mongodb\bin> 

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

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

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

mongo.exe

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

0

Эта работа мне: -

В Mongo 3.2 для окна вы должны запустить сервис Mongodb. Итак, запустите Command Prompt as Administrator, затем net start MongoDB

0

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

0

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

Спасибо.

-1
sudo systemctl start mongodb 

### start mongodb Server 

sudo systemctl status mongodb 

### running status of MongoDB server

Ещё вопросы

Сообщество Overcoder
Наверх
Меню