Не удается подключиться к 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 работает? Какие параметры конфигурации есть в вашем файле conf?
— ffflabs 01

Вы использовали sudo apt-get для установки? Я читал о людях, испытывающих проблемы с этим ... попробуйте вместо этого удалить и загрузить через сайт MongoDB .
— Хасан

Я установил с помощью homebrew, в инструкциях на официальном сайте не было указано, что мне нужно настроить файл .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
Спасибо за это решение !! Команда сервиса brew работала у меня в 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/…
— Пауло Оливейра

однажды это сработало для меня ... но потом оно упало: / Кажется, это
— помогло

Это хороший способ выиграть битву и проиграть войну. Не запускайте службы от имени пользователя root.
— Майлз Эриксон,

22

Чтобы решить вашу проблему, вам необходимо следовать инструкциям, которые вам дает команда brew после использования команды «brew install 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

Возможно, вы сможете просто запустить эту последнюю команду, но у меня это не сработало, и мне нужно было запустить вторую команду. Чтобы спасти меня в будущем. Я тоже только что запустил первую команду. Надеюсь, это поможет!

РЕДАКТИРОВАТЬ Метод использования Хриши brew services mongodb startработал у меня хорошо. Я думаю, они должны включить это в документы mongo.


Я использовал последнюю команду и посетил localhost / 27017 в моем браузере, на экране было сказано: «Похоже, вы пытаетесь получить доступ к MongoDB через HTTP через собственный порт драйвера». Это не кажется правильным ...
— Майкл

Монго сейчас работает, правда? Как в, вы можете ввести mongo в оболочке, и вы больше не получаете сообщение об отказе в соединении? Вы не будете получать доступ к mongo из браузера, вы захотите работать с ним из cli.
— jh3y

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

да, последняя команда тоже висела у меня. Я бы просто пробежал первые два, и у тебя все будет хорошо. Когда он зависнет, просто нажмите ctrl + cи попробуйте mongoпосле этого.
— jh3y

Хм ... Он все еще не работает. Я опубликую на форумах mongoDB. Спасибо за помощь.
— Майкл

16

На другой вкладке вы можете запустить оболочку mongo с помощью

монгод

Затем вернитесь на предыдущую вкладку и попробуйте еще раз. Если у вас возникли проблемы с настройкой mongoshell, перейдите по этой ссылке в оболочке 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
Мое единственное сожаление заключается в том, что у меня есть только один голос за: все остальные ответы игнорируют тот факт, что конфигурации brew по умолчанию помещают 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 с помощью homebrew.

Журнал /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 -Икс/

sudo mkdir -p /data/db

Наконец, начал процесс mongod следующим образом

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 выполнив команду brew services restart 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.