Подтвердить что ты не робот

Errr 'mongo.js: L112 Ошибка: не удалось подключиться к серверу 127.0.0.1:27017 в src/mongo/shell/mongo.js: L112'

Я не могу подключиться к MongoDB. В Ubuntu это работает, но сейчас я работаю в CentOS. Это сообщение об ошибке:

Версия оболочки MongoDB: 2.4.2
подключение к: test
Sat Apr 20 07: 22: 09.390 Ошибка выполнения JavaScript: Ошибка: не удалось подключиться к серверу 127.0.0.1:27017 в src/mongo/shell/mongo.js: L112
исключение: сбой подключения

Я попытался удалить файл mongod.lock, но он не работает.

4b9b3361

Ответ 1

Попробуйте удалить /var/lib/mongodb/mongod.lock и перезапустить службу mongdo

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

Ответ 2

Если вы используете Ubuntu, возникает проблема с правами на папку.

Запустите следующие команды:

  • Остановить службу MongoDB

    sudo service mongodb stop
    
  • Удалите файл блокировки MongoDB

    sudo rm /var/lib/mongodb/mongod.lock
    
  • Изменение права собственности с root на путь MongoDB

    sudo chown -R mongodb:mongodb /var/lib/mongodb/
    
  • Запустите службу MongoDB

    sudo service mongodb start
    
  • Протестируйте приложение mongo

    mongo
    

Затем вы сможете успешно выполнить (надеюсь).

Ссылка: ответ на сайте Stack Exchange. Администраторы баз данных: Ошибка не удалось подключиться к серверу. 127.0.0.1:27017 src/mongo/shell/mongo.js: 91 при изменении каталог данных mongodb!

Ответ 3

Этот метод работает только в том случае, если вы хотите восстановить файлы данных без сохранения исходных файлов. Чтобы найти, где находится dbpath, используйте

vim /etc/mongodb.conf

Проверить вариант dbpath=.

(у меня есть dbpath=/var/lib/mongodb.)

По умолчанию: /data/db/

Типичные местоположения включают /srv/mongodb, /var/lib/mongodb или /opt/mongodb.

Замените /var/lib/mongodb на dbpath

sudo rm /var/lib/mongodb/mongod.lock
sudo mongod --dbpath /var/lib/mongodb/ --repair
sudo mongod --dbpath /var/lib/mongodb/ --journal

(Убедитесь, что вы оставили терминал, в котором вы выполняли указанные выше строки. Не нажимайте Ctrl + C или не выходите.) Введите команду, чтобы начать mongo теперь в другом окне.

Я надеюсь, что это сработает для вас! Для тех, кто хочет восстановить ваши файлы данных при сохранении исходных файлов, см. mongo восстановить.

Ответ 4

У меня была такая же проблема в прошлом. В моем случае у меня было недостаточно свободного места для файлов журнала. Освобождение некоторого пространства решило проблему.

Ответ 5

Я не знаю, почему ответ @lkrzysiak был опущен: он работал у меня! Недостаточное свободное пространство МОЖЕТ быть источником этой ошибки, которую я тоже получил, посмотрев журналы, которые я получил:

    Mon Aug 12 17:02:59.159 [initandlisten] recover : no journal files present, no recovery needed
    Mon Aug 12 17:02:59.159 [initandlisten] 
    Mon Aug 12 17:02:59.159 [initandlisten] ERROR: Insufficient free space for journal files
    Mon Aug 12 17:02:59.159 [initandlisten] Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles
    Mon Aug 12 17:02:59.159 [initandlisten] 
    Mon Aug 12 17:02:59.159 [initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating
    Mon Aug 12 17:02:59.159 dbexit: 
    Mon Aug 12 17:02:59.159 [initandlisten] shutdown: going to close listening sockets...

После некоторой очистки, чтобы освободить место, он работал как шарм!

Ответ 6

Я столкнулся с той же проблемой. За работой mongod внутри бункера (где у вас установлен ваш монгодб) работал у меня. У меня также было недостаточно места.

Ответ 7

Вы также получите эту ошибку, если вы изменили порт по умолчанию для mongoDB в файле /etc/mongo.conf

Для подключения через оболочку в этом случае используйте: -

$mongo 127.0.0.1:your_new_port_number

ИЛИ

$mongo -u <user> -p <pass> --host <host> --port your_new_port_number

из Документы MongoDB

Ответ 8

Это может быть комбинация проблемы $PATH и Permission.

Попробуйте выполнить следующие шаги:

Обновите переменную $PATH, чтобы указать файл bin MongoDB. В моем случае brew установите MongoDB в эту папку:

/usr/local/Cellar/mongodb/2.4.6/

Чтобы обновить переменную $PATH, выполните следующие действия:

$ sudo vi /etc/paths

Затем нажмите 'i, чтобы вставить текст в Vi и добавьте свой путь MongoDB в конец файла путей и перезапустите терминал.

/usr/local/Cellar/mongodb/2.4.6/bin

Используйте "Esc: w q для сохранения и выхода из редактора Vi.

Используйте эхо, чтобы отобразить вашу переменную пути:

$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/Cellar/mongodb/2.4.6/bin

Теперь попробуйте проверить версию Mongo, если вы следуете, то вы на правильном пути!

$ mongo --version
MongoDB shell version: 2.4.6

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

$ sudo mkdir /data/db
$ sudo mkdir /data/log
$ whoami
username
$ chown -R username /data

Теперь мы создадим конфигурационный файл по умолчанию для MongoDB, который будет предоставлен в первый раз, когда мы запустим команду mongod. Теперь я также хотел бы отметить, что "mongod запустит сервис, который будет прослушивать входящие подключения к данным. Это похоже на запуск" $service mysqld start.Lets" и создание файла конфигурации. Имейте в виду, что я создал очень простой файл конфигурации. Тем не менее, вы можете добавить много других переменных для настройки MongoDB. Это первый раз, когда я играю с MongoDB, поэтому я просто знаю столько, сколько я читал в документах MongoDB! Я создал mongodb.conf.

$ sudo vi /etc/mongodb.conf

Добавьте следующее:

fork = true
port = 27017
quiet = true
dbpath = /data/db
logpath = /data/log/mongod.log
logappend = true
journal = true

Обратите внимание, что порт по умолчанию для сервера MongoDB - 27017. Используйте свой собственный путь для dbpath и logpath, который вы создали на шаге 5. Не забудьте закрыть и сохранить файл conf.

Теперь мы все настроены на запуск нашего сервиса MongoDB. Откройте два экземпляра Terminal.In Terminal 1, введите:

$ sudo mongod -f /etc/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 3516
all output going to: /data/log/mongod.log
child process started successfully, parent exiting

Если вы получаете сообщение выше, то знайте, что вы успешно запустили службу Mongod.

Теперь, чтобы подключиться к нему, в терминале 2 введите следующее:

$mongo test
MongoDB shell version: 2.4.6
connecting to: test
Server has startup warnings:
Tue Sep 3 16:55:43.527 [initandlisten]
Tue Sep 3 16:55:43.527 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
>

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

Это все. Я применил это решение, когда я впервые попытался установить копию MongoDB на моем Mac. Посмотрите, поможет ли вам это.

Для подробного сообщения вы можете перейти сюда - http://arcanebytes.com/2013/09/03/mongodb-installation-on-mac-os-x/#comment-1036112094.

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

Cheers, Chinmay