Не удается подключиться к 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.

jh3y
источник
Я использовал последнюю команду и посетил 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
>

Вот и все.

Hygull
источник
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 

Затем откройте другое окно терминала и запустите:

монго

Теперь все должно работать.

Ctpelnar1988
источник
-1

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

Ришаб Мехта
источник