Проблема соединения с mongoid

Я пытался использовать Mongoid с Rails на Ubuntu. Mongodb работал нормально для меня с приложением рельсов 3.0 до 3.2.

Сегодня неожиданно я получаю сообщение об ошибке:

/home/pravinmishra/.rvm/gems/ruby-1.9.2-p318/gems/mongo-1.5.2/lib/mongo/connection.rb:413:in `connect ': не удалось подключиться к главному узлу на локальном хосте:27017 (Mongo::ConnectionFailure)

Много раз я сталкивался с этой проблемой, и команды ниже работали для меня:

sudo rm /var/lib/mongodb/mongod.lock
sudo -u mongodb mongod -f /etc/mongodb.conf --repair
sudo start mongodb
sudo status mongodb

Когда я подключаюсь с терминала Ubuntu, используя mongo, я получаю эту ошибку:

Версия оболочки MongoDB: 2.0.1 подключение к: тестирование понедельник, 9 июля 22:47:06 Ошибка: не удалось подключиться к серверу 127.0.0.1 shell/mongo.js:84 исключение: ошибка подключения

Любое предложение будет оценено.

3 ответа

Решение

Возможно, ваш экземпляр mongodb неожиданно завершил работу, и у вас устаревшие блокировки и база данных в несогласованном состоянии.

Как вы уже догадались, начать mongoDB с --repair флаг, но после этого вам нужно перезапустить его снова без него.

Также убедитесь, что все процессы действительно завершены, иначе вы не сможете привязать сервер к одному и тому же порту. Я бы порекомендовал выполнить netstat -tulnp и дважды проверьте, нет ли ничего прослушивающего на порту 27017.

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

Если это произойдет снова, обязательно убедитесь, что вы работаете с включенным ведением журнала (по умолчанию в 2.0), тогда восстановление не требуется.

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

Другие вопросы по тегам