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


164

Я родом з Ріак і Редіс, де у мене ніколи не виникало проблем із запуском або взаємодією з цими послугами.

Це всепроникна проблема з монго, і я досить незрозумілий. Перезапуск не допомагає. Я новачок у монго.

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
Я також стикався з тим же питанням. Його cus mongo Не в змозі створити папку на C: / data / db. Я дотримувався цього поводу mkyong.com/mongodb/how-to-install-mongodb-on-windows
— СТАЛІ

Я зіткнувся з такою ж помилкою, коли використовував ноутбук своєї компанії та встановлював MongoDB на C :. Через адміністративні привілеї та факт, що мені підказують своє ім’я користувача та пароль адміністратора щоразу, коли я встановлюю щось або змінюю що-небудь у C:, це було причиною того, що я не міг працювати mongodb. Після встановлення на D :, все спрацювало чудово.
— paranza

Відповіді:


47

Ця помилка - це те, що ви побачили, якби оболонка монго не змогла поговорити з сервером mongod.

Це може бути тому, що адреса була неправильною (хост або IP) або що вона не працює. Варто зазначити, що наданий слід журналу не охоплює ваш "Пт 9 листопада 16:44:06" mongo timestamp.

Ти можеш:

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

282

Зазвичай це спричинено тому, що ви не запускали процес монгода, перш ніж спробувати запустити оболонку монго.

Запустіть mongod-сервер

mongod

Відкрийте ще одне вікно терміналу

Запустіть оболонку монго

mongo

3
Цей випадок розробив для мене, мені довелося зробити ~> sudo mongod --dbpath / dbpathlocation, а потім відкрив новий термінал для запуску монго ...
— Саджі

5
те, що працювало для мене на macOS Сьєрра, sudo mongodа потімmongo
— Амін Джафарі

Мені довелося створити каталог / data / db перед запуском mongod
— Студент коледжу

Я не можу повірити, що все, що я повинен був зробити, це запуститись mongodу фоновому режимі чи іншій оболонці перед запуском mongo. Кричи на Раві Хамсу !.
— Kareem Jeiroudi

Працювали для мене як шарм!
— Сбхіт Шарма

86

Вирішено.

Цю проблему можна було б вирішити за допомогою наведених нижче 4 кроків

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

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

2) відремонтувати mongodb

mongod -–repair

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

sudo service mongod start 

4) запустити клієнта mongo

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 і що з цим пішло не так?
— ozn

mongod --repair
— Алін Матос

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. Чи можемо ми зараз закрити перше вікно терміналу?
— Хайям Гондал

26

ОС MAC

Перевірте статус

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 за замовчуванням немає користувачів або пароля, тому вам потрібно знати про це.
— агм1984

Працюйте і для мене, але не знаю про безпеку після коментаря @ agm1984, я просто використаю це в режимі розробки, і після того, як я буду використовувати Атлас Хмару Mongodb, більш безпечну в моєму випадку, я думаю (з моїм поганим сервером навички: D)
— Адрієн 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. У папці "дані" створіть папку "db"
  4. відкритий термінал (CMD) -> перехід до EX: "c:\MongoDB\Server\3.4\bin "
  5. введіть mongod => це запустить сервер mongo (залиште його відкритим)

Запустити за допомогою GUI, 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

Тоді я спробував виправити, використовуючи всі вищевказані відповіді, і нічого не вийшло. Коли я спробував запустити монгода, це сказав

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

Я намагався змінити db шлях (до програмних файлів) через файлову систему, а також за допомогою cmd, але це не працювало.

Для мене це рішення:

Відкрив вкладку Диспетчер завдань ( ctrl + shift + esc) -> Служби , і там був ряд MongoDB зі статусом, зупинений . Потім я прямо натиснув і натиснув на початок, і все працює чудово :) .


6

Якщо все вищезазначене рішення не працює: перейдіть до служби ( start>search>services) та запустіть службу mongodb. Потім в cmd-підказку, після переходу в бін, наберіть:/>mongo


5

Щоб з'єднатися з mongo, ми повинні спершу запустити послуги "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

Ваше питання вирішено :)


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

Скручуючись, я створив необхідні папки, але все-таки виникла проблема. І це тому, що сервер 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папку в root. У ubuntu мені знадобився один додатковий варіант; надати дозволи для каталогу.

вікна

mkdir c:/data/db

ubuntu:

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. бродять, а потім ssh у вашу бродячу машину, в якій ви встановили зв'язок з mongodb (vagrant ssh vagrant_box_name)
  2. коментуйте рядок bind_ip з /etc/mongod.conf, використовуючи # (sudo nano /etc/mongod.conf)
  3. перезапустити послугу демона mongodb (служба судо mongod перезапустити) вуаля ...

1

Запустити послугу monogdb за допомогою

sudo service mongod start 

потім у новому вікні чи терміналі запустіть клієнта mongo за допомогою

mongo

0

Видаліть файл mongod.lock. І запустіть "mongod -repair". видалення / перевстановлення послуги mongod виправили цю проблему для мене.

Дякую.



0

Нарешті я зрозумів це просто.

відкрийте термінал і перейдіть до місця mongodb. У моєму випадку це так

e:\mongodb\bin> 

і введіть таку команду та натисніть клавішу Enter.

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

Відкрийте інший термінал і запустіть mongodb за допомогою

mongo.exe

Ось .. можна використовувати монго


0

Це старе питання, але, як новачок, я подумав, що додам, що (за допомогою Webstorm) потрібно натиснути на провідник Mongo (вкладка в правій частині вікна). Звідти:

-Натисніть налаштування. -Клік натисніть кнопку перегляду (виглядає як кнопка з "..." на ній. -Перейти до програмних файлів> MongoDB> Server> 3.4> bin> mongo.exe (ваша версія може відрізнятися від 3.4). Після цього натисніть зелений знак плюс праворуч. Відкриється вікно -Введіть ім’я в слот "Label". -Клік натисніть.

Тепер вам слід підключитися. Введення "mongod" в термінал недостатньо. Ви також повинні виконати вищезазначені кроки.

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


0

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


0

Просто створіть папку з назвою "data" на диску C, а всередині папки даних створіть іншу папку з назвою "db". Потім виконайте mongod.exe :)


Що змушує вас думати, що у запитувача є Windows або не вдалося встановити MongoDB?
— Немо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.