Подтвердить что ты не робот

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

Я прихожу из 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
4b9b3361

Ответ 1

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

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

Ты можешь:

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

Ответ 2

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

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

mongod

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

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

mongo

Ответ 3

Решено.

Эта проблема может быть решена с помощью следующих 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/

Ответ 4

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

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

Ответ 5

MAC OS

Проверить состояние

brew services list

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

Name    Status  User Plist
mongodb stopped  

Начни это

brew services start mongodb

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

mongo или mongo --port 27017

Ответ 6

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

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

Ответ 7

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

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

sudo vi /etc/mongodb.conf

Комментировать IP и порт как

#bind_ip = 127.0.0.1
#port = 27017

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

sudo service mongodb restart
sudo service mongod restart

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

[email protected] ~ $ mongo
MongoDB shell version: 2.4.9
connecting to: test
> exit

Ответ 8

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

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

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

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

Или

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

Ответ 9

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

Ответ 10

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

Ответ 11

Чтобы подключиться к монго, мы должны сначала запустить сервисы "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

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

Ответ 12

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

systemctl start mongod
systemctl enable mongod

Ответ 13

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

export LC_ALL=C

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

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

Ответ 14

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

Ответ 15

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

df -h

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

du -hs /var/lib/mongodb/ 

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

Ответ 16

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

Ответ 17

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

sudo service mongod start

Ответ 18

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

Машина: Я использую машину 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 снова, что точно решило мою проблему.

Ответ 19

если все вышеприведенное решение не сработает, возможно, это может помочь. Где-то по линии вы могли подключиться к локальной базе данных 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...

Ответ 20

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

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

cd /var/lib/mongodb

ls

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

sudo touch mongod.lock

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

mongod –-repair

sudo service mongod start 

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

Ответ 21

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

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

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

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

brew services restart mongodb

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

Ответ 22

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

Спасибо.

Ответ 23

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

Ответ 24

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

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

Ответ 25

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

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

e:\mongodb\bin> 

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

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

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

mongo.exe

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

Ответ 26

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

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

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

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

Ответ 27

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

Ответ 28

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

Ответ 29

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

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

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

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

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

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

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

Ответ 30

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