Не вдалося підключитися до 127.0.0.1:27017, причина: errno: 111 Підключення відмовлено


81

намагаючись виконати цю команду mongo в ubuntu, я отримую цю помилку.

    ritzysystem@ritzysystem-Satellite-L55-A:~$ mongo
    MongoDB shell version: 2.6.1
    connecting to: test
    2014-10-06T12:59:35.802+0530 warning: Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused
    2014-10-06T12:59:35.802+0530 Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed at src/mongo/shell/mongo.js:146
    exception: connect failed

як я можу це виправити - хтось мав ту саму проблему.


6
mongodсервер не працює, підключіть його, ввівши mongodтермінал.
Раві

2
Ваш монгод не працює на 127.0.0.1 Чи можете ви спробувати, як цей "mongo --host localhost"
Lalit Agarwal

1
дякую всім, я спробував запустити mongo, він не працював, нарешті, я виявив, що на моєму жорсткому диску не було місця, я звільнив трохи місця і, нарешті, перевстановив його за тією ж процедурою встановлення, що і для встановлення, як зазначено в mongodb docs, нарешті перезапустив сервер і він працює. docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu
Ashish

4
Ви можете відповісти на власне запитання (а не залишати коментар). Рішення було б більш помітним, і це допомогло б іншим
mihai

Відповіді:


98

Виконайте таку команду:

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

Відмовлено в підключенні до MongoDB errno 111

MacOS:

rm /usr/local/var/mongodb/mongod.lock  
sudo service mongod restart

на Ubuntu: mongod замість mongodb
Blacksonic

6
Після запуску служби sudo mongod restart на Ubuntu:Job for mongod.service failed. See "systemctl status mongod.service" and "journalctl -xe" for details.
Flavio Wuensche

4
немає mongodbв/var/lib/
RegarBoy

1
біг mongodзамість цього
Іман Мохамаді

Запустити ідеально на Ubuntu Server 16.04.1 LTS
Камі Родрігес

29

У мене була та сама проблема в Mac OS Спробуйте запустити sudo mongod і на новій вкладці терміналу запустити mongo


Мені також довелося бігати mongoіз
судо

22

дякую всім, я спробував запустити mongo, він не працював, нарешті, я виявив, що на моєму жорсткому диску не було місця, я звільнив трохи місця і, нарешті, перевстановив його за тією ж процедурою встановлення, що і для встановлення, як вказано в документах mongodb, нарешті перезапустив сервер і він працює.

https://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu


Не знаю, чому вас перевстановили. Я думаю, що цього достатньо, щоб звільнити місце, видаливши небажані файли, і тоді, можливо, ви захочете перезапустити службу mongod, оскільки служба mongod може бути вбита через відсутність місця. чи є якась конкретна причина для перевстановлення ?.
Siva S

18

У моєму випадку помилка сталася через відсутність папки / data / db, яку mongodb використовує для зберігання ваших даних. Введіть цю команду $sudo mongod у своєму терміналі. Якщо повідомлення про помилку виглядає приблизно так:

missing data/db folder error

Просто створіть папку, і все готово.


Дивно, як це не створюється автоматично.
basickarl

створити directroy data / db в кореневій папці, тепер працює нормально.
vidur punj

Примітка: не забудьте також надати дозволи для папки. mkdir /data/dbпотімchmod 777 /data/db
AndreFeijo


9

Можливо, у вас немає місця на жорсткому диску. Перевірте це, набравши в promt df -h

Зверніть увагу, що mongo може вийти з ладу навіть при наявності 3 Гб у відповідному розділі. Для отримання детальної інформації ви можете перевірити журнал:cat /var/log/mongodb/mongod.log


"mongodb.log" мав друкарську помилку і записується як "mongod.log". Я намагався редагувати, але stackoverflow сказав мені, що мені потрібно редагувати принаймні 6 символів. Погана ідея imo SO.
Роберт Бракко,

8

У мене була та ж проблема на моєму Mac, і я встановив mongodb через homebrew. Я вирішую цю проблему командою homebrew services .

Перший запуск служби mongodb:

$ brew services start mongodb

Запуск терміналу mongodb

$ mongo

Зупинити службу mongodb:

$ brew services stop mongodb


7

Перш ніж підключати консоль, переконайтеся, що ви запустили Службу MongoDB.

запустити і запустити сервер:

$ sudo mongod

тоді:

$ mongo
...
>

5

Зробити це:

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

Якщо ви працюєте на Ubuntu 16.04, це можна зрозуміти, виконавши це:

lsb_release -a

Вам потрібно створити новий файл /lib/systemd/system/mongod.serviceіз таким вмістом:

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual

[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

[Install]
WantedBy=multi-user.target

4

У моєму випадку проблема виникла через явну втрату дозволу на файл mongodb.lock. Я міг вирішити проблему, змінивши дозвіл, за допомогою такої команди:

sudo chown mongodb:mongodb /var/lib/mongodb/mongodb.lock

Далі слід моє розслідування: поетапна перевірка


4

Думаю, крім місця на диску, вам слід перевірити вхід, /var/log/mongodbщоб дізнатись деталі, чому не вдалося запустити mongodb.

cat /var/log/mongodb/mongod.log

2016-06-26T15:26:26.642+0800 I CONTROL  [main] ***** SERVER RESTARTED *****
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten] MongoDB starting : pid=8130 port=27017 dbpath=/var/lib/mongodb 64-bit host=hadoop-master
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten] db version v3.2.7
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten] git version: 4249c1d2b5999ebbf1fdf3bc0e0e3b3ff5c0aaf2
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1f 6 Jan 2014
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten] allocator: tcmalloc
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten] modules: none
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten] build environment:
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten]     distmod: ubuntu1404
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten]     distarch: x86_64
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten]     target_arch: x86_64
2016-06-26T15:26:26.649+0800 I CONTROL  [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1,192.168.3.10", port: 27017 }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } }
2016-06-26T15:26:26.678+0800 E NETWORK  [initandlisten] Failed to unlink socket file /tmp/mongodb-27017.sock errno:1 Operation not permitted
2016-06-26T15:26:26.678+0800 I -        [initandlisten] Fatal Assertion 28578
2016-06-26T15:26:26.678+0800 I -        [initandlisten] 

***aborting after fassert() failure

Отже, тут мені потрібно rm усі файли в /tmp. Для мене це прекрасно працює.


3

Я розумію, що питання стосується Ubuntu.

Але якщо ви отримуєте ту саму помилку на Mac і не хочете $ sudo mongodпрацювати на окремій вкладці, ви можете зробити наступне, щоб виправити помилку підключення, якщо у вас є Homebrew -

brew services start mongodb

На основі відповіді з цієї теми - Не вдається підключитися до mongodb errno: 61 Підключення відмовлено


3

У моєму випадку bind_ip не був 127.0.0.1 у файлі /etc/mongodb.conf, тому змініть bind_ip на 127.0.0.1 (це можуть бути значення, розділені комами, тому переконайтеся, що 127.0.0.1 є одним із них) Потім перезапустіть систему, щоб набути чинності. Перезапускайте лише тих, хто стикається

$sudo service mongod restart
Failed to restart mongod.service: Unit mongod.service not found.

3

Для mongo v3.6.3 + (або версії 2019)

rm /var/lib/mongodb/mongod.lock
service mongodb restart

1

дуже просто, лише видаліть файл /var/lib/mongodb/mongodb.lock. тільки після виконання: mongo. закінчили


1

Можливо, що каталог даних для mongo, вказаний у /etc/mongod.conf, не є дійсним шляхом.

Спробуйте sudo vi /etc/mongod.confперевірити шлях, якщо він справді існує, і перевірте dbPath.


1

У мене та сама помилка з вами, це мій випадок:

~# mongod
2018-07-15T05:27:08.265+0000 I JOURNAL  [initandlisten] journal dir=/data/db/journal
2018-07-15T05:27:08.265+0000 I JOURNAL  [initandlisten] recover : no journal files present, no recovery needed
2018-07-15T05:27:08.301+0000 I JOURNAL  [durability] Durability thread started
2018-07-15T05:27:08.301+0000 I JOURNAL  [journal writer] Journal writer thread started
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] MongoDB starting : pid=26796 port=27017 dbpath=/data/db 64-bit host=ubuntu-s-2vcpu-4gb-sfo2-01
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] 
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] 
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] 
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] db version v3.0.6
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] git version: 1ef45a23a4c5e3480ac919b28afcba3c615488f2
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] build info: Linux build6.ny.cbi.10gen.cc 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] allocator: tcmalloc
2018-07-15T05:27:08.302+0000 I CONTROL  [initandlisten] options: {}
2018-07-15T05:27:08.308+0000 I NETWORK  [initandlisten] waiting for connections on port 27017

Я набираю mongod, щоб запустити сервер, і набираю control+, cщоб вийти з оболонки

то я набираю, mongoі я отримав

~# mongo
MongoDB shell version: 3.0.6
connecting to: test
2018-07-15T05:05:02.738+0000 W NETWORK  Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused
2018-07-15T05:05:02.739+0000 E QUERY    Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed
    at connect (src/mongo/shell/mongo.js:179:14)
    at (connect):1:6 at src/mongo/shell/mongo.js:179

Як бачите, інформація про мою помилку однакова з вами.

Це випадок, що mongod не починається з внутрішнього процесу, коли я набираю control+, cя кидаю mongod.

Ми можемо додати аргументи --fork, щоб зробити процес демона процесу.

#  mongod --logpath /usr/local/mongodb/log.txt --fork

вам потрібно встановити --logpath, якщо ви хочете використовувати --fork

тоді вам вдасться підключитися до монго


1

Виконайте ці прості кроки; (Працює і на ОС MAC)

  1. Відкрийте термінал і запустіть sudo mongod

  2. Відкрийте нову вкладку терміналу (не закривайте вкладку кроку 1) і запустіть sudo mongo

Це все


0

Mongo 3. *. * - OSX - 2017

З README

RUNNING

Змінити каталог на mongodb-osx-x86_64-3. *. * / Bin

Щоб запустити одну базу даних сервера:

$ mkdir /data/db
$ ./mongod

Перейдіть до нового терміналу

$ # The mongo javascript shell connects to localhost and test database 
$ # by default -Run the following command in new terminal
$ ./mongo 
> help

Чому голосування проти? це так треба робити ?? !!
Міна Габріель



0

Лише деякі думки щодо моєї справи.

Якщо ви змінили директорії dbPath і logPath на власні значення (скажімо / data / mongodb / data, / data / mongodb / log), ви повинні обробити їх користувачем mongodb, інакше неіснуючий / data / db / dir буде використовуватися.

sudo chown -R mongodb:mongodb /data/mongodb/

sudo service mongod restart

0

В останній версії MongoDB v 3.6.5 + є зміни у файлі mongod.conf

Ось як я виправив цю проблему на mac os High Sierra v 10.12.3

Примітка: Я припускаю, що ви встановили / оновили MongoDB за допомогою homebrew

монго --версія

MongoDB shell version v3.6.5 
git version: a20ecd3e3a174162052ff99913bc2ca9a839d618 
OpenSSL version: OpenSSL 1.0.2o  27 Mar 2018 
allocator: system modules: none build environment:
distarch: x86_64
target_arch: x86_64
  1. знайти файл mongod.conf

     sudo find / -name mongod.conf` 
    

    /usr/local/etc/mongod.conf> перший результат.

  2. відкрити файл mongod.conf

    sudo vi /usr/local/etc/mongod.conf
    
  3. правити в файлі для віддаленого доступу по мережі: розділ

     port: 27017  
     bindIpAll: true 
     #bindIp: 127.0.0.1 // comment this out
    
  4. перезапустити mongodb

    якщо ви встановили за допомогою brew ніж

    brew services stop mongodb
    
    brew services start mongodb
    

в іншому випадку вбийте процес.

   sudo kill -9 <procssID>

1
Людям, які читають цю відповідь: ОБЕРЕЖНО! Якщо я не помиляюсь, коментування bindIpвідкриє ваші бази даних у відкритому Інтернеті, якщо у вас не ввімкнено авторизацію (вона не ввімкнена за замовчуванням).

0

Проблема полягала в підключенні до бази даних, і це могло бути пов’язано з кількома причинами. Для мене це було мало місця на диску на моїй серверній машині, і коли mongo намагається підключити його відмовити через низький диск, перевірте локальну пам'ять вашої серверної машини, du -shякщо у вас мало місця, перевірте розмір журналів і виконайте кроки відповідно, проблема може існують через dbpath суперечать /etc/mongod.confі сервер насправді працює dbpath з. mongod Якщо ви стикаєтесь із подібними проблемами, перевірте мою відповідь у наведеному нижче посиланні. https://stackoverflow.com/a/53057695/8247133


0

Я зіткнувся з тією ж проблемою, тому, будь ласка, перевірте, чи є папка mongodb, спершу спробуйте видалити цю папку

rm -rf /var/lib/mongodb/*

Тепер спробуйте запустити mongo, і якщо така сама проблема, то його файл блокування mongodb, який заважає запускати mongo, тому, будь ласка, видаліть файл блокування mongo

rm /var/lib/mongodb/mongod.lock

Для силоміць rm -rf /var/lib/mongodb/mongod.lock

сервіс mongodb перезапустити, якщо вже в режимі sudo, інакше вам потрібно використовувати like sudo service mongod start

або ви можете запустити сервер методом fork

mongod --fork --config /etc/mongod.conf

а для перегляду того ж - це роздвоєне, перевірте, скориставшись командою нижче

ps aux | grep mongo

0

Для тих, хто має Windows. У мене була та сама проблема в Windows. Це вирішує перезапуск служби Mongodb.

Нижче наведено кроки для перезавантаження в Windows:

i). Перейдіть до розділу "Послуги" у Windows.

ii). Шукайте "MongoDB" у списку послуг.

iii). Клацніть правою кнопкою миші "пуск" / "перезапуск" залежно від вашого статусу.

iv). Після переходу стану в "запущений" перевірте, чи проблему вирішено, запустивши "Mongo" або підключивши клієнта Mongo.


0

Для macOSбагатьох відповідей вже застаріли згідно офіційних документів . Якось brewзмінилося і як нам слід встановити MongoDB, спочатку видаліть його з вашого macOS(хоча це може бути і не потрібно), а потім встановіть, виконавши такі дії:

  1. brew tap mongodb/brew
  2. brew install mongodb-community@4.4
  3. brew services start mongodb-community@4.4

Слідкуйте за 4.4частиною, вона зміниться. Якщо в майбутньому це зламається, зверніться до офіційних документів та встановіть версію, яка пропонується у зв’язаному навчальному посібнику.

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