MongoDB: Не удалось подключиться к 127.0.0.1:27017, причина: errno: 61 Connection отказано
Моя проблема похожа на другие материалы и предложения на этом сайте, но никто мне не помог. После установки MongoDB не запускается, потому что база данных не запущена.
Сначала попробуйте запустить манго, и я ответил на это:
Mac-Pro-de-User: ~ user $ mongo
MongoDB shell version: 2.6.4
connecting to: test
2014-10-28T10: 47: 08713-0700 warning: Failed to connect to 127.0.0.1:27017, reason: errno: 61 Connection refused
2014-10-28T10: 47: 08713-0700 Error: could not connect to server 127.0.0.1:27017 (127.0.0.1) Attempt connection failed at src / mongo / shell / mongo.js: 146
exception: connect failed
Затем попробуйте проверить манго, и я ответил на это:
Mac-Pro-de-User: ~ user $ mongod
mongod --help for help and startup options
2014-10-28T10: 59: 34485-0700 [initandlisten] MongoDB starting: pid = 926 port = 27017 dbpath = / data / db host = 64-bit Mac-Pro-de-Ernesto.local
2014-10-28T10: 59: 34485-0700 [initandlisten]
2014-10-28T10: 59: 34485-0700 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, Should be at Least 1000
2014-10-28T10: 59: 34485-0700 [initandlisten] db version v2.6.4
2014-10-28T10: 59: 34485-0700 [initandlisten] git version: 3a830be0eb92d772aa855ebb711ac91d658ee910
2014-10-28T10: 59: 34485-0700 [initandlisten] Build info: Darwin bs-osx108-4 12.5.0 Darwin Kernel Version 12.5.0: Sun Sep 29 13:33:47 PDT 2013; root: xnu-2050.48.12 ~ 1 / x86_64 RELEASE_X86_64 BOOST_LIB_VERSION = 1_49
2014-10-28T10: 59: 34485-0700 [initandlisten] allocator: system
2014-10-28T10: 59: 34485-0700 [initandlisten] options: {}
2014-10-28T10: 59: 34486-0700 [initandlisten] journal dir = / data / db / journal
2014-10-28T10: 59: 34486-0700 [initandlisten] recover: no journal files present, no recovery needed
2014-10-28T10: 59: 34500-0700 [FileAllocator] allocating new datafile /data/db/local.ns, filling zeroes With ...
2014-10-28T10: 59: 34500-0700 [FileAllocator] creating directory / data / db / _tmp
2014-10-28T10: 59: 34512-0700 [FileAllocator] done allocating datafile /data/db/local.ns, size: 16MB, took 0.011 secs
2014-10-28T10: 59: 34726-0700 [FileAllocator] allocating new datafile /data/db/local.0, filling zeroes With ...
2014-10-28T10: 59: 35398-0700 [FileAllocator] done allocating datafile /data/db/local.0, size: 64MB, took 0.671 secs
2014-10-28T10: 59: 35695-0700 [initandlisten] build index on: local.startup_log properties: {v: 1, key: {_id: 1}, name: "_id_" ns "local.startup_log"}
2014-10-28T10: 59: 35695-0700 [initandlisten] index added to empty collection
2014-10-28T10: 59: 35695-0700 [initandlisten] Local command $ cmd command. Create {create: "startup_log" size: 10485760, capped: true} ntoreturn: 1 KeyUpdates: 0 numYields: 0 reslen: 37 1194ms
2014-10-28T10: 59: 35695-0700 [initandlisten] waiting for connections on port 27017
2014-10-28T11: 00: 34516-0700 [clientcursormon] mem (MB) res: 33 virt: 2653
2014-10-28T11: 00: 34516-0700 [clientcursormon] mapped (incl journal view): 160
2014-10-28T11: 00: 34516-0700 [clientcursormon] connections: 0
Затем попробуйте еще раз подключиться и провести некоторое время, и снова говорит то же самое:
2014-10-28T11: 05: 34589-0700 [clientcursormon] mem (MB) res: 33 virt: 2653
2014-10-28T11: 05: 34589-0700 [clientcursormon] mapped (incl journal view): 160
2014-10-28T11: 05: 34589-0700 [clientcursormon] connections: 0
И так далее. Если вы можете помочь, это очень понравится.
PS: Уже есть /data/db с 777 правами, и я используя OSX Mavericks 10.9.5
Ответы
Ответ 1
Выполняете ли вы все эти команды в том же терминале, что и отдельные действия, как показывают временные метки? (если нет, я бы ожидал увидеть перекрытие между ошибками и журналами для правильной диагностики).
Если да, то то, что вы делаете, выглядит следующим образом:
- Запуск оболочки, попытка подключения к нерабочей базе данных (отказ в соединении)
- Запуск базы данных, просмотр 0 подключений в журналах
- Остановка базы данных (Ctrl-C или аналогичная), запуск оболочки, не удается снова подключиться, поскольку база данных была отключена.
- Запуск базы данных, просмотр 0 подключений в журналах
- повторить
База данных должна работать одновременно с оболочкой, чтобы вы могли подключиться к ней. Следовательно, вы должны запустить процесс mongod
в одном терминале, оставьте его запущенным, а затем откройте новый терминал (или вкладку) и запустите команду mongo
, чтобы подключиться к все еще работающей базе данных. Другой вариант - запустить mongod
в качестве демона, который позволит вам запустить команду mongo
в том же терминале, как только она вернется.
Примечание. У вас никогда не должно быть папки с разрешениями 777, это не требуется и представляет собой значительный риск для безопасности.
Ответ 2
Просто попробуйте эту команду.
sudo chown mongodb/tmp/mongodb-27017.sock
и
sudo service mongod restart
Ответ 3
Фиксированный!
Причиной была переменная dbpath в файле /etc/mongodb.conf. Раньше я использовал mongodb 1.8, где значение по умолчанию для dbpath было /data/db. Выпускная работа mongodb (которая поставляется с пакетом mongodb-10gen) вызывает mongod с параметром --config/etc/mongodb.conf.
В качестве решения я должен был рекурсивно менять владельца каталога /data/db.
Пример: Перейдите в "/data" в терминале, а затем введите
sudo chown -R <username>:foldername
Например:
sudo chown -R raja db/
Ответ 4
Здравствуйте, просто проверьте, создан ли путь /data/db, и если вы это сделали, дайте разрешение 755 с помощью chmod.