Mongodb не может подключиться к localhost, но может подключиться к IP-адресу localhost
Если я попытаюсь запустить оболочку mongodb с mongo
одна команда, я получаю:
Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84
исключение: не удалось подключиться
Однако, если я укажу локальный IP-адрес локального хоста следующим образом:
mongo 10.10.5.90
... это нормально подключается.
Какие-либо подсказки??
7 ответов
У вас есть bind_ip
установить в вашем mongodb.conf (или сценарии запуска)? отредактируйте для ясности A bind_ip
настройка ограничивает IP-адрес, который будет прослушиваться только на этом IP-адресе.
См. Раздел "Привязка IP-адресов": http://www.mongodb.org/display/DOCS/Security+and+Authentication
Если нет, есть ли у вас правила брандмауэра, блокирующие доступ к локальному хосту? Это было бы странно, но я не могу придумать еще одну причину, по которой это не сработало бы, пока работал бы IP-адрес локальной сети.
Эта ошибка может также появиться, если mongodb не был корректно выключен. Если вы печатаете sudo start mongodb
и если он дает новый идентификатор процесса при каждом выполнении, то ваш mongodb не был корректно завершен. Чтобы решить этот тип
sudo rm /var/lib/mongodb/mongod.lock
sudo -u mongodb mongod -f /etc/mongodb.conf --repair
sudo start mongodb
Просто выполните все эти шаги, чтобы решить эту проблему
Step 1: Remove lock file.
sudo rm /var/lib/mongodb/mongod.lock
Step 2: Repair mongodb.
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
Я предпочитаю конфигурацию
net:
bindIpAll: true
или
net:
bindIp: localhost
Верхняя конфигурация разрешает подключения с удаленных компьютеров (если не заблокирована брандмауэром), вторая разрешает только подключения с вашего локального компьютера.
На мой взгляд, конфигурация типа
net:
bindIp: 10.10.5.90
имеет смысл только на компьютере с несколькими сетевыми интерфейсами.
Заметьте, пока мы в 2023 году, имеет смысл добавить
net:
ipv6: true
илиmongod --ipv6 ...
потому что IPv6 по умолчанию отключен, но IPv6 становится все более распространенным.
Я добавил localhost вместе с ip, который у меня был в bind_ip при запуске mongo, и это решило мою проблему, например: bin/mongod --dbpath data --logpath mongo.log --fork --bind_ip localhost,10.100.1.2
Для людей, использующих MongoDB Compass в окнах VMWare:
C:\Program Files\MongoDB\Server\5.0\bin по умолчанию - это каталог сервера Mongo. Вы можете изменить bindIp и порт в mongod.cfg
Также не забудьте проверить, запущена ли служба сервера mongo: win + r> services.msc> Сервер MongoDB (MongoDB)> Щелкните правой кнопкой мыши> Пуск.
Должен сэкономить время, надеюсь, это поможет.
Отредактируйте ваш mongod.conf следующим образом
bindIp: 0.0.0.0, локальный хост
Меня устраивает.