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


91

Нещодавно я встановив mongodb-2.6.0 з Homebrew . Після успішного встановлення я спробував підключитися за допомогою mongoкоманди. Я отримую такі помилки, які не дозволяють мені підключитися:

Failed to connect to 127.0.0.1:27017, reason: errno:61 Connection refused

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

1
Ви впевнені, що послуга mongod навіть працює? Які параметри конфігурації ви маєте у своєму файлі конф?
ffflabs

Ви використовували sudo apt-get для встановлення? Я читав про людей, які стикаються з цим ... спробуйте видалити та завантажити через сайт MongoDB .
Хасан

Я встановив домашню мову, в інструкціях на офіційному веб-сайті не вказано, що мені потрібно встановити файл .config. Я просто завантажив його і запустив команду 'mongoose', що призвело до вищезазначених помилок.
Майкл

Перевірте свої журнали, як правило, /var/logs/mongodbякщо я правильно пам’ятаю.
AlbertEngelB

Я повторно встановив завантаження та розпакував файл. Я запускаю "mongo" і все ще отримую ті самі помилки.
Майкл

Відповіді:


277

Це може статися, коли служба mongodb не працює на mac. Щоб розпочати, я спробував

brew services start mongodb

і це спрацювало.

Редагувати: Відповідно до обговорення цього PR на домашній писемності: https://github.com/Homebrew/homebrew/issues/30628

brew servicesзастаріло, я оглянувся на SO і знайшов ці відповіді, і тепер відповідаю на запитання: Який правильний спосіб запустити службу mongod у Linux / OS X?


8
Я отримую повідомлення про помилку з цією командою: "Невідома команда: послуги"
ZeMoon

7
"служби заварювання" більше не підтримується: github.com/Homebrew/homebrew/issues/32006
Віталій

7
Я спробував sudo mongod замість mongo, і все почалося! Щоб отримати доступ до оболонки mongo, я відкрив нове вікно оболонки і написав mongo, і це спрацювало !! Ви можете знайти повний запис помилок із рішенням у цьому блозі
Алі Раза Бхаяні

1
Послуги варки більше не підтримуються в моєму Mac OS X Yosemite. sudo mongodзапустив mongodb, а потім працювала команда mongo. Дякую @Ali Raza Bhayani.
psun

2
Дякую за це рішення !! Команда служби заварювання працювала для мене в моєму Mac OS X Sierra.
Jcc.Sanabria

32

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

Крок 1 - Встановлення (Не виконуйте цей крок, якщо ви вже встановили MongoDB):

brew update
brew install mongodb

Крок 2 - Запустіть Mongo Daemon:

mkdir -p /data/db
sudo mongod

Крок 3 - Запустіть інтерфейс оболонки Mongo:

mongo

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


1
На це також посилається офіційна сторінка MongoDB: docs.mongodb.org/v2.2/tutorial/install-mongodb-on-os-x/…
Пауло Олівейра,

це працює для мене коли - то ... але потім вона впала: / Це , здається, зробив трюк: stackoverflow.com/a/22623543/1177832
danwild

Це хороший спосіб виграти битву і програти війну. Не запускайте служби як root.
Майлз Еріксон,

22

Щоб вирішити вашу проблему, вам потрібно слідувати інструкціям, які надає вам заварка після того, як ви використовуєте "заварювання встановлення mongodb".

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

ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents

Потім завантажити mongodb зараз:

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist

Або, якщо ви не хочете / не потребуєте launchctl, ви можете просто запустити:

mongod --config /usr/local/etc/mongod.conf

Можливо, ви зможете просто виконати цю останню команду, але вона у мене не спрацювала, і мені потрібно було виконати другу команду. Щоб врятувати мене в майбутньому. Я також просто виконав першу команду. Сподіваюся, це допоможе!

EDIT метод Hrishi у використанні brew services mongodb startпрацював добре для мене. Я думаю, що вони повинні включити це до монго-документів.


Я використав останню команду і відвідав localhost / 27017 у своєму браузері, на екрані з'явилося повідомлення: "Схоже, ви намагаєтесь отримати доступ до MongoDB через HTTP на порту рідного драйвера." Здається, це не правильно ...
Майкл

Монго зараз працює, правда? Оскільки ви можете ввести монго в оболонці, і ви більше не отримуєте повідомлення про відмову у підключенні? Ви не отримаєте доступ до mongo з браузера, вам доведеться працювати з ним із кліпу.
jh3y

Ні, жодна команда в оболонці не буде виконуватися після того, як я введу 'mongod --config /usr/local/etc/mongod.conf' Це просто пустий рядок. Я повторно застосував, не використовуючи homebrew, і завантажив zip з веб-сайту, перемістив виконувані файли в / usr / local / bin, але тепер я все ще отримую ті самі повідомлення про помилки.
Майкл

так, остання команда просто звисла і для мене. Я б просто провів перші два, і ти повинен бути хорошим. Коли він зависає, просто натисніть ctrl + cі спробуйте mongoпісля цього.
jh3y

Хм ... Це все ще не працює. Я буду розміщувати повідомлення на форумах mongoDB. Thx за допомогу.
Майкл

16

На іншій вкладці ви можете запустити оболонку mongo з

монгод

Потім поверніться до попередньої вкладки та повторіть спробу. Якщо у вас виникають проблеми з налаштуванням монгошелли, перевірте це посилання в оболонці монго: http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/ або це посилання щодо встановлення mongodb: http: / /docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/


Це зробило це для мене. Я повністю пропустив запустити службу mongod, перш ніж спробувати запустити mongo. Дякую!
Метт Веландер,

7

У мене була та ж проблема під час дзвінка mongodз командного рядка.

Я вирішив це, зателефонувавши натомість sudo mongod.


Не запускайте служби як root.
Майлз Еріксон,

4

У мене була та сама помилка, але інша корінна причина. Думав, я розміщу тут рішення, якщо хтось інший зіткнеться з проблемою. Я отримав цю помилку після неправильного вимкнення Mac під час роботи mongorestore -d foo dump/foo/.

ТЛ; ін : я виправив проблему, видаливши пошкоджений foo.nsфайл разом з foo.0, foo.1... з моєї папки даних /usr/local/var/mongodb/. Потім я перезапустив сервер mongo за допомогою, brew services restart mongodbі я повернувся до нормального стану.

Подробиці : Помилку я отримував навіть після спроби запустити або перезапустити службу mongodb за допомогою brew або launchctl. Врешті-решт я запустив mongod --dbpath /usr/local/var/mongodb і побачив, що служба насправді не запускається, і послідовність запуску включала таку помилку: [initandlisten] bad .ns file: /usr/local/var/mongodb/foo.ns [initandlisten] User Assertion: 10079:bad .ns file length, cannot open database я позбувся поганого .nsфайлу та решти файлів даних, і наступного разу, коли я запустив службу, мені було зручно піти .


1
Я шкодую лише про те, що у мене є лише один голос за: усі інші відповіді ігнорують той факт, що конфігурації заварювання за замовчуванням ставлять dbs в / usr / local / var / mongodb!
premiumFrye

1
Annnddd Mongo просто знову розбився, тож мені довелося знову пройти цей процес. Добре, що я проголосував вашу відповідь, щоб я міг її знову знайти: D
premiumFrye

3

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

$>ps -aef | grep mongo
502  8047     1   0 11:52AM ??         0:00.23 /usr/local/opt/mongodb/bin/mongod --config /usr/local/etc/mongod.conf 

$>sudo kill 8047

$>sudo mongod


1

Я отримав цю помилку після того, як перейшов до mongo 3.6 із домоволодінням.

Журнал /usr/local/var/log/mongodb/mongo.logмістив повідомлення shutting down with code:62. Цей код помилки означає, що існуюча база даних занадто стара для запуску з поточною версією mongo.

Я знайшов 2 рішення в іншому запитанні SO :

Я вибрав оновлення. У моєму випадку це означало, що мені довелося понизитися до рівня 3.4, запустити команду в консолі mongo, а потім оновити знову. Mongo вимагає від вас оновлення однієї основної версії за раз, тому, залежно від того, наскільки ви були назад, можуть бути додаткові кроки. Документи допоможуть вам.

Команди brew switch* та brew services restartробили обмін версіями відносно безболісним.


0

Якщо ви вже встановили MongoDB, спершу спробуйте запустити mongod як користувача sudo, я зіткнувся з проблемою через не запущений mongod як суперкористувача.

Я вставив o / p для обох команд ( mongod і sudo mongod ) в самому низу, ви також можете це перевірити, але

Спочатку спробуйте це

sudo mongod

не це

mongod

Я встановив MongoDB на свою MAC OS X Sierra 10.12.6, виконавши послідовно наступну команду.

brew update
brew install mongodb --devel
brew services start mongodb

потім створив каталог, до якого процес mongod запише дані, це необов’язково, оскільки процес mongod приймає їх за замовчуванням, див. цей корисний посібник за адресою https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os -x /

sudo mkdir -p /data/db

Нарешті розпочато процес моногрупу наступним чином

sudo mongod

Виведення команд mongod (не вдалося) та sudo mongod (успішно) на моєму терміналі.

MacBook-Pro-2:appscheck admin$ mongod
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] MongoDB starting : pid=2698 port=27017 dbpath=/data/db 64-bit host=MacBook-Pro-2.local
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] db version v3.4.10
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] git version: 078f28920cb24de0dd479b5ea6c66c644f6326e9
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2n  7 Dec 2017
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] allocator: system
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] modules: none
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] build environment:
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten]     distarch: x86_64
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten]     target_arch: x86_64
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] options: {}
2017-12-10T08:12:06.166+0530 I STORAGE  [initandlisten] exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /data/db, terminating
2017-12-10T08:12:06.166+0530 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
2017-12-10T08:12:06.166+0530 I NETWORK  [initandlisten] shutdown: going to flush diaglog...
2017-12-10T08:12:06.167+0530 I CONTROL  [initandlisten] now exiting
2017-12-10T08:12:06.167+0530 I CONTROL  [initandlisten] shutting down with code:100


MacBook-Pro-2:appscheck admin$ sudo mongod
Password:
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] MongoDB starting : pid=2700 port=27017 dbpath=/data/db 64-bit host=MacBook-Pro-2.local
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] db version v3.4.10
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] git version: 078f28920cb24de0dd479b5ea6c66c644f6326e9
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2n  7 Dec 2017
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] allocator: system
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] modules: none
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] build environment:
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten]     distarch: x86_64
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten]     target_arch: x86_64
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] options: {}
2017-12-10T08:12:14.084+0530 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=7680M,session_max=20000,eviction=(threads_min=4,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-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
2017-12-10T08:12:14.560+0530 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2017-12-10T08:12:14.707+0530 I INDEX    [initandlisten] build index on: admin.system.version properties: { v: 2, key: { version: 1 }, name: "incompatible_with_version_32", ns: "admin.system.version" }
2017-12-10T08:12:14.707+0530 I INDEX    [initandlisten]      building index using bulk method; build may temporarily use up to 500 megabytes of RAM
2017-12-10T08:12:14.719+0530 I INDEX    [initandlisten] build index done.  scanned 0 total records. 0 secs
2017-12-10T08:12:14.720+0530 I COMMAND  [initandlisten] setting featureCompatibilityVersion to 3.4
2017-12-10T08:12:14.720+0530 I NETWORK  [thread1] waiting for connections on port 27017

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

MacBook-Pro-2:appscheck admin$ mongo
MongoDB shell version v3.4.10
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.10
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
    http://docs.mongodb.org/
Questions? Try the support group
    http://groups.google.com/group/mongodb-user
Server has startup warnings: 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
> show dbs;
admin  0.000GB
local  0.000GB
> use practice
switched to db practice
>

Це воно.


0

У мене була та ж проблема, і я, переглянувши файл журналу, побачив таке:

{2019-03-09T11:57:32.136-0500 I STORAGE  [initandlisten] 
exception in initAndListen: NonExistentPath: 
Data directory /usr/local/var/mongodb not found., terminating}

отже, я створив каталог, /usr/local/var/mongodb видав команду перезапуску служб заварювання mongodb. Я зміг відкрити консоль mongo.


-1

Я припускаю, що у вас немає запущеної бази даних під час спроби отримати доступ до тестування за допомогою команди "mongo".

Спочатку запустіть цю команду в терміналі:

mongod 

Потім відкрийте інше вікно терміналу і запустіть:

монго

Зараз все повинно працювати.


-1

Моя подібна помилка вирішується видаленням файлу "sudo rm /data/db/mongod.lock" при спробі запустити mongod. Тепер ти можеш запустити mongod, а потім mongo.

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