Невозможно подключиться к MongoDB - PullRequest
21 голосов
/ 06 февраля 2012

Я только что установил MongoDB (стандартная сборка Ubuntu, а не последняя стабильная версия) и по какой-то причине не могу подключиться:

Mon Feb  6 03:11:22 Error: couldn't connect to server 127.0.0.1 shell/mongo.js:79
exception: connect failed

Теперь моя машина не 127.x.x.1, она по какой-то причине x.x.x.2 (Но я изменил свою конфигурацию, чтобы привязать к этому адресу, а также попытался привязать к моему общедоступному IP-адресу, который не дал результатов.

Config:

# mongodb.conf

# Where to store the data.

# Note: if you run mongodb as a non-root user (recommended) you may
# need to create and set permissions for this directory manually,
# e.g., if the parent directory isn't mutable by the mongodb user.
dbpath=/var/lib/mongodb

#where to log
logpath=/var/log/mongodb/mongodb.log

logappend=true

bind_ip = 199.21.114.XX
port = 27017

Я проверил журналы, и там отображается только информация о запуске.

Я также проверил, что демон тоже работает, и это - я даже пытался запустить его вручную с --fork.

Кто-нибудь сталкивался с этим раньше? Или есть предложения?

Thx

UPDATE:

После перезагрузки - вот логи:

** WARNING: You are running in OpenVZ. This is known to be broken!!!

Tue Feb  7 19:43:32 [initandlisten] db version v1.8.2, pdfile version 4.5
Tue Feb  7 19:43:32 [initandlisten] git version: nogitversion
Tue Feb  7 19:43:32 [initandlisten] build sys info: Linux allspice 2.6.24-28-se$
Tue Feb  7 19:43:32 [initandlisten] *** warning: spider monkey build without ut$
Tue Feb  7 19:43:32 [initandlisten] waiting for connections on port 27017
Tue Feb  7 19:43:32 [websvr] web admin interface listening on port 28017

Ответы [ 8 ]

25 голосов
/ 24 сентября 2014

Я решил эту проблему, закомментировав следующую строку в моем файле /etc/mongod.conf.

# Listen to local interface only. Comment out to listen on all interfaces. 
#bind_ip = 127.0.0.1

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

14 голосов
/ 06 февраля 2012

Вы должны указать IP (199.21.114.XX), запустив mongo 199.21.114.XX.

В противном случае, если вы хотите, чтобы он также прослушивал localhost, вам следует удалить параметр bind_ipваш файл конфигурации.

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

10 голосов
/ 28 февраля 2012
sudo rm /var/lib/mongodb/mongod.lock
3 голосов
/ 07 июня 2016

У меня была такая же проблема только из-за глупой ошибки.

сначала удалите файл mongodb, что нормально

rm -rf /tmp/mongodb-27017.sock

где я допустил ошибку в /etc/mongod.conf

# network interfaces
net:
  port: 27017
 #bindIp: 127.0.0.1
bindIp: privateIp

вместо

net:
  port: 27017
  bindIp: 10.1.2.4

для прослушивания всех доступных ips

bindIp: [127.0.0.1,10.128.0.2]

перезапустить mongodb

sudo service mongod start

надеюсь, этот ответ поможет кому-то

2 голосов
/ 06 февраля 2012

По умолчанию при запуске консольной команды mongo на вашем локальном хосте будет найден mongodb, следовательно, 127.0.0.1 IP, который является вашей локальной обратной связью.Кроме того, конфигурация по умолчанию для mongod должна быть доступна на localhost.Для начала лучше сделать это так, если только вы не включили аутентификацию.Убедитесь, что у вас включена авторизация или ваша база данных работает открыто на вашем общедоступном ip.

Когда вы хотите подключиться к хосту, отличному от localhost или конфигурации по умолчанию, вы делаете:

mongo <host>
1 голос
/ 07 сентября 2018

в /etc/mongod.conf

Я изменил,

bindIp: 127.0.0.1

на

bindIp: 0.0.0.0

это все порты.Да, я знаю, что это рискованно, но я работаю во внутренней сети.

Кстати, комментирование #bindIp: 127.0.0.1 НЕ работает для меня, работает под Ubuntu 18.

1 голос
/ 21 января 2016

следующие шаги могут вам помочь:

  1. открыть терминал и запустить " sudo rm /var/lib/mongodb/mongod.lock"
  2. теперь запустите " sudo mongod --repair "
  3. сейчас " sudo start mongodb "
  4. теперь просто проверьте статус статуса mongodb " статус sudo mongodb "

5, наконец, просто вызовите команду " mongo "

0 голосов
/ 17 декабря 2018

Другой способ - добавить параметр mongod param bind_ip

mongod -–help

- список IP-адресов, разделенных запятыми, через запятую, по IP-адресу для прослушивания - по умолчанию localhost

- bind_ip_all bind to allIP-адреса

mongod --fork --logpath /var/log/mongodb.log --dbpath /data/db --bind_ip 0.0.0.0
...