Не удалось подключиться к серверу 127.0.0.1:27017

Я получаю следующую ошибку:

[email protected]:/$ mongo
MongoDB shell version: 2.2.0
connecting to: test
Thu Oct 11 11:46:53 Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91
exception: connect failed
[email protected]:/$ 

Вот что происходит, когда я пытаюсь запустить mongodb:

* Starting database mongodb                                             [fail]

Я уже пробовал mongo --repair

Я сделал chown и chmod для var, lib и data/db и log mongodb.

Не уверен, что еще делать. Любые предложения?

mongodb.log:

***** SERVER RESTARTED *****


Thu Oct 11 08:29:40 
Thu Oct 11 08:29:40 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Oct 11 08:29:40 
Thu Oct 11 08:29:41 [initandlisten] MongoDB starting : pid=1052 port=27017 dbpath=/var/lib/mongodb 32-bit host=alex-K43U
Thu Oct 11 08:29:41 [initandlisten] 
Thu Oct 11 08:29:41 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Thu Oct 11 08:29:41 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations
Thu Oct 11 08:29:41 [initandlisten] **       with --journal, the limit is lower
Thu Oct 11 08:29:41 [initandlisten] 
Thu Oct 11 08:29:41 [initandlisten] db version v2.2.0, pdfile version 4.5
Thu Oct 11 08:29:41 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Thu Oct 11 08:29:41 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Oct 11 08:29:41 [initandlisten] options: { config: "/etc/mongodb.conf", dbpath: "/var/lib/mongodb", logappend: "true", logpath: "/var/log/mongodb/mongodb.log" }
Thu Oct 11 08:29:41 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/var/lib/mongodb/journal"
************** 
Unclean shutdown detected.
Please visit http://dochub.mongodb.org/core/repair for recovery instructions.
*************
Thu Oct 11 08:29:41 [initandlisten] exception in initAndListen: 12596 old lock file, terminating
Thu Oct 11 08:29:41 dbexit: 
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close listening sockets...
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to flush diaglog...
Thu Oct 11 08:29:41 [initandlisten] shutdown: going to close sockets...
Thu Oct 11 08:29:41 [initandlisten] shutdown: waiting for fs preallocator...
Thu Oct 11 08:29:41 [initandlisten] shutdown: closing all files...
Thu Oct 11 08:29:41 [initandlisten] closeAllFiles() finished
Thu Oct 11 08:29:41 dbexit: really exiting now

EDIT:

Я удалил блокировку, затем восстановил mongod и получил эту ошибку:

Thu Oct 11 12:05:37 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating

поэтому я сделал это с помощью sudo:

[email protected]:~$ sudo mongod --repair
Thu Oct 11 12:05:42 
Thu Oct 11 12:05:42 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Oct 11 12:05:42 
Thu Oct 11 12:05:42 [initandlisten] MongoDB starting : pid=5129 port=27017 dbpath=/data/db/ 32-bit host=alex-K43U
Thu Oct 11 12:05:42 [initandlisten] 
Thu Oct 11 12:05:42 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Thu Oct 11 12:05:42 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations
Thu Oct 11 12:05:42 [initandlisten] **       with --journal, the limit is lower
Thu Oct 11 12:05:42 [initandlisten] 
Thu Oct 11 12:05:42 [initandlisten] db version v2.2.0, pdfile version 4.5
Thu Oct 11 12:05:42 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Thu Oct 11 12:05:42 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Oct 11 12:05:42 [initandlisten] options: { repair: true }
Thu Oct 11 12:05:42 [initandlisten] Unable to check for journal files due to: boost::filesystem::basic_directory_iterator constructor: No such file or directory: "/data/db/journal"
Thu Oct 11 12:05:42 [initandlisten] finished checking dbs
Thu Oct 11 12:05:42 dbexit: 
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close listening sockets...
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to flush diaglog...
Thu Oct 11 12:05:42 [initandlisten] shutdown: going to close sockets...
Thu Oct 11 12:05:42 [initandlisten] shutdown: waiting for fs preallocator...
Thu Oct 11 12:05:42 [initandlisten] shutdown: closing all files...
Thu Oct 11 12:05:42 [initandlisten] closeAllFiles() finished
Thu Oct 11 12:05:42 [initandlisten] shutdown: removing fs lock...
Thu Oct 11 12:05:42 dbexit: really exiting now

Но все-таки с той же проблемой.

Ответ 1

Журнал показывает, что mongodb завершается, потому что есть старый файл блокировки.

Если вы не работаете и не работаете с журналированием, удалите файл блокировки, запустите восстановление и снова запустите mongodb.

Если вы используете или выполняете ведение журнала, см. соответствующие документы Mongo DB. Обратите внимание, что они говорят: "Если вы работаете с журналом, вы не должны делать ремонт, чтобы восстановить согласованное состояние". Поэтому, если вы ведете ведение журнала, ремонт может ухудшить ситуацию.

Ответ 2

Step 1: Remove lock file.
sudo rm /var/lib/mongodb/mongod.lock

Step 2: Repair mongodb. 
sudo mongod --repair 

Step 3: start mongodb.
sudo start mongodb 
or
sudo service mongodb start

Step 4: Check status of mongodb.
sudo status mongodb 
or   
sudo service mongodb status

Step 5: Start mongo console.
mongo 

Ответ 3

Запустили ли вы mongod перед запуском mongo?

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

Ответ 4

Это потому, что mongod обрабатывает его, вы должны запустить команды ниже, чтобы запустить mongod:

sudo service mongodb stop
sudo rm /var/lib/mongodb/mongod.lock
sudo mongod --repair --dbpath /var/lib/mongodb
sudo mongod --fork --logpath /var/lib/mongodb/mongodb.log --dbpath /var/lib/mongodb 
sudo service mongodb start

Надеюсь, это поможет вам.

Ответ 5

Try

sudo service mongodb start

Это решило мою проблему.

Ответ 6

Проверьте свободное пространство файловой системы и увеличьте его, если оно меньше. Это также может привести к тому, что монго не начнется. Проверьте файл /var/log/mongodb/mongodb.log.

ERROR: Insufficient free space for journal files
Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles

Ответ 7

Попробуйте запустить mongod до mongo.

sudo /usr/sbin/mongod на моем открытии

Это решило мою проблему,

Ответ 8

так что сначала вы должны удалить файл mongod.lock по команде

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

а затем перезапустите службу mongo, выполнив команду

sudo service mongod restart 

Ответ 9

С помощью netstat -anp | grep 27017 вы можете проверить, используется ли порт другим процессом.

Ответ 10

Это сработало для меня:

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

Ответ 11

В windows run cmd as Admin:

  • Создать каталог:

    mkdir c:\mongo\data\db

  • Установить службу:

    mongod.exe --install --logpath c:\mongo\logs --logappend --bind_ip 127.0.0.1 --dbpath c:\mongo\data\db --directoryperdb

  • Запустите MongoDB:

    net start MongoDB

4.Start Mongo Shell:

c:\mongo\bin\mongo.exe

Это решение отлично работает для меня

Ответ 12

Для дальнейшего использования выполните следующие действия, чтобы избежать подобных ошибок:

1. Загрузите MondoDB https://www.mongodb.com/

2. Откройте терминал и перейдите в папку загрузок или в любую папку, в которую вы сохранили загрузку mondodb (убедитесь, что вы распаковали папку mongodb перед тем, как перейти в нее)

cd Downloads

3. Переместите mongodb на ваш usr/локальный путь

sudo mv mongodb-osx-... /usr/local/mongodb

4.cd в вашу локальную папку

cd /usr/local/mongodb

5. создать новый каталог

sudo mkdir -p /data/db

6.cd в новый каталог, созданный выше

cd /data/db

7. дай монго разрешений

sudo chown YourMacUserName /data/db

8. Затем перейдите/откройте свой.bash_profile

Для этого выполните следующие действия:

В вашем новом терминале

1 cd 2 .pwd 3. ls -l

Проверьте, присутствует ли файл.bash_profile в вашем списке файлов на вашем терминале.

если не создать -bash_profile

Создание.bash_profile:

В вашем терминале

коснитесь.bash_profile

//пропустить этот шаг, если у вас уже есть.bash_profile

Step8:

Далее в вашем терминале:

open .bash_profile

И в открывшемся bash файле добавьте следующее:

MONGO_PATH=/usr/local/mongodb
export PATH=$PATH:$MONGO_PATH/bin

А затем сохраните. (Файл Сохранить или команда S/CMD + S)

Шаг 9: вернитесь в свой терминал:

source .bash_profile

Теперь откройте два терминала. Один будет для вашего демона mondo, другой - для вашего монго.

Терминал 1: в вашем терминале тип: mongod

mongodb

Выход: Mongod Terminal

Терминал 2:

mongo

Выход: Mongo terminal

Также убедитесь, что вы не допустили следующую ошибку при запуске mongod в терминале: это неверно

mongo d

выдает следующую ошибку: Не удалось подключиться к 127.0.0.1:27017, в (проверка сокета на наличие ошибок после опроса), причина: соединение отказано

Это правильно:

mongod

(Между словами монго и д..мондод не должно быть пробела

Наконец, всегда имейте в виду, что вы должны запустить mondod, прежде чем запускать Монго на своих терминалах.

Ответ 13

После частых попыток, наконец, я решил устранить проблему...

Step 1: ps aux | grep mongo
Step 2: sudo rm /var/lib/mongodb/mongod.lock
Step 3: sudo mongod --repair
Step 4: mongo

Ответ 14

Я следовал за документом http://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/.

После настройки и перезагрузки я выполнил sudo service mongod start и получил ... [FAILED].

Наконец, я обнаружил, что началось mongod. Я думаю, что yum install добавил его к автозапуску.

Чтобы проверить, работает ли ваш mongod: service mongod status.

Надеюсь, что это может помочь кому-то с той же проблемой.

Ответ 15

Эта ошибка может быть вызвана установкой привязки MongoDB. Вы можете проверить конфигурационный файл MongoDB на

$ sudo vi /etc/mongodb.conf

В моем случае IP-адрес привязки установлен на адрес внутренней сети сервера, как указано ниже:

bind_ip = 10.10.1.14 
#port = 27017

Итак, я дал mongo параметр IP для подключения к оболочке по типу:

$ mongo 10.10.1.14

Не забудьте перезапустить службу mongodb, если вы изменили конфигурацию.

Ответ 16

У меня версия mongo 3.2.1, и мне пришлось удалить файл блокировки с /data/db/, после чего запустил mongod, и он начал успешно.

>rm /data/db/mongod.lock
>mongod

Ответ 17

В терминале выполните эти команды

1)

$ sudo service mongod start

2)

 $ mongo

Ответ 18

После удаления mongod.lock, который находился внутри каталога данных в моей ОС Windows, он все еще показывал одно и то же сообщение об ошибке. Мне пришлось запустить mongod с --dbpath, чтобы команда mongo запускалась без ошибок.

Ответ 19

Хотя ответы получены, я хотел бы обсудить ошибки сети в MongoDB.

Network errors MongoDB

Настройка безопасных проблем с записью - не полный метод доказательства, чтобы убедиться, что мы в безопасности. Предположим, что w=1 и j=true установлены, что, если подтверждение записи не было получено с сервера? Ну, скорее всего, этого не произошло, но могло случиться. Причина, по которой это могло произойти, состоит в том, что есть сетевые ошибки - есть причины, по которым мы не можем получить утвердительный ответ. Таким образом, мы можем отправить запрос из приложения через драйвер выбранного языка. mongod может завершить его успешно, а затем может быть TCP reset, и сеть действительно может получить reset таким образом, чтобы мы никогда не получали ответ. Таким образом, мы могли бы получить ошибку и ошибку, мы можем предположить, что мы получили ошибку. Этого не произошло, но это может произойти.

Для вставки можно защитить его. Это возможно, потому что, если мы позволим водителю создать _id, и мы сделаем вставку - тогда мы могли бы сделать это вставить несколько раз, и это нанесет какой-либо вред. Потому что, если мы делаем это 1 st и мы получаем ошибку, и мы не уверены, завершена ли эта вставка, потому что это сетевая ошибка, тогда мы могли бы просто сделать это снова. И если мы выполним его снова, tyr выполнит его с точным _id. В худшем случае мы получим двойную ключевую ошибку, когда мы попытаемся ее вставить.

Однако обновление происходит там, где возникает проблема. В частности, обновление, которое не является значимым элементом, например, включало команду $ink. Итак, мы сообщаем базе данных, чтобы увеличить определенное поле. В этом случае, если мы получим сетевую ошибку, и мы не знаем, произошло ли обновление. Теперь, может быть, мы достаточно знаем о значениях, которые мы можем проверить с ними, что произошло обновление, и это нормально. Но если мы не знаем начальное значение в базе данных для этого поля, нам не представляется возможным узнать, произошло ли это или нет в случае сетевой ошибки. Такие проблемы крайне редко встречаются в тонкой сети.

И если нам действительно нужно избегать этого любой ценой, нам нужно сделать все наши обновления в вставках, читая полное значение документа из базы данных, а затем потенциально удаляя его и вставляя снова или просто вставить новый.

Причины, по которым приложение может получить ошибку, даже если запись была успешной:

  • Сетевое TCP-соединение между приложением и сервером было reset после того, как сервер получил запись, но до отправки ответа.
  • Сервер MongoDB завершается между получением записи и ответом на нее.
  • Сеть не работает между временем записи и временем, когда клиент получает ответ на запись.

Ответ 20

Это работает для меня, чтобы остановить использование mongodb:

use admin
db.shutdownServer()

И перезапустить:

sudo service mongod restart

Ответ 21

Добавление бина в PATH в переменных среды помогло.

Путь установки GOTO и скопируйте файл.. /bin в переменные PATH в переменных среды в Windows

Ответ 22

Thu Oct 11 12:05:42 [initandlisten] Невозможно проверить файлы журнала из-за: boost:: filesystem: : basic_directory_iterator constructor: Нет такого файла или каталога: "/data/db/journal" Чт 11 окт 12:05:42 [initandlisten] закончил проверку dbs

В этой строке нет такого файла или каталога , поэтому создайте папку /data/db на root, тогда попробуйте "mongod" , надеюсь, что это сработает

Ответ 23

введите окна + r и введите следующие

services.msc

запустите MongoDB

теперь введите "mongo" в cmd в соответствующем пути, где присутствует mongo.exe, он начнет работать.

Ответ 24

1. Создайте новую папку на диске D: /data/db

2. Откройте терминал на D: /data/db

3.Введите mongod и введите.

4.Введите Монго и введите.

и твой mongodb стратировал............