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.