ZaLinux.ru

Решение проблемы с ошибкой Connection refused to MongoDB errno 111

Ошибка Connection refused to MongoDB errno 111 может появится в разных ситуациях, у неё могут быть различные причины. Поэтому рассмотрим разные варианты решения.

1. Удаление файла mongod.lock

Одной из вероятных причин может быть файл mongod.lock, который по каким-то причинам не был удалён программой автоматически. Вы можете сделать это и перезапустить службу (перезапуск службы показан на примере для Debian и производных):

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

2. Настройка bind_ip = localhost в /etc/mongod.conf

При внешнем подключении нужно обязательно в файле /etc/mongod.conf изменить значение директивы bind_ip на

bind_ip = 0.0.0.0

Можно просто закомментировать эту строку.

Даже при внутреннем подключении может провялятся ошибка Connection refused to MongoDB errno 111, то попробуйте заменить bind_ip = localhost на

bind_ip = 127.0.0.1

3. Нет места для размещения базы данных

Эта же самая ошибка может происходить по весьма тривиальной причине – недостаточно место для размещения БД. Проверить количество свободного пространства на жёстком диске можно командой:

df -h

Решением в этом случае является увеличение свободного места или перенос базы данных в другое место, для этого в файле /etc/mongodb.conf замените значение директивы

dbpath = /var/lib/mongodb

4. Неверные права на директорию /var/lib/mongodb

В некоторых ситуациях, к примеру, при переносе файлов БД на другой сервер и размещении их в каталог /var/lib/mongodb под учётной записью суперпользователя, может получится так, что владельцем каталога /var/lib/mongodb (в котором хранятся базы данных) будет не mongod. Чтобы это исправить нужно выполнить команды вида:

chown -R mongod:mongod <директория с БД MongoDB>
chmod 600 <директория с БД MongoDB>

Если вы не меняли значение директории с БД по умолчанию, то команды будут такими:

chown -R mongod:mongod /etc/mongodb.conf
chmod 600 /etc/mongodb.conf

5. Проблемы с SELinux

В этом случае вам должны помочь команды:

sudo chcon -Rv --type=mongod_log_t $logpath
sudo chcon -Rv --type=mongod_var_lib_t $dbpath

Возможно, здесь перечислены далеко не все причины ошибки «Connection refused to MongoDB errno 111», но, по крайней мере, рассмотрены самые частые с конкретными решениями.

Кстати, о том, как правильно делать резервные копии БД MongoDB можно почитать в официальной документации (на английском):

Рекомендуемые статьи:

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *