【问题标题】:mongo exception: connect failed on a fresh installmongo 异常:全新安装时连接失败
【发布时间】:2017-04-29 15:23:02
【问题描述】:

我第一次在我的 Debian 8 上安装了 mongodb,遵循mongodb install guide。目标是将 mongodb 用于 Rocket.chat,为此我关注 this guide

到目前为止,我所做的只是:

$sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
$echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.4 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

$sudo apt-get update
$sudo apt-get install mongodb-org

$sudo systemctl enable mongod
$sudo vi /etc/mongod.conf
<insert>    
replication:                                                               
   oplogSizeMB: 1                                                          
   replSetName: rs0

$sudo systemctl restart mongod
$export LC_ALL=C
$sudo mongo

MongoDB shell version v3.4.0
connecting to: mongodb://127.0.0.1:27017
2016-12-14T10:21:55.356+0100 W NETWORK  [main] Failed to connect to 127.0.0.1:27017 after 5000 milliseconds, giving up.
2016-12-14T10:21:55.356+0100 E QUERY    [main] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed :
connect@src/mongo/shell/mongo.js:234:13
@(connect):1:6
exception: connect failed

当我试图访问 mongo shell 时,我正在监视日志文件,但没有任何显示。

mongod 服务正在运行,配置为侦听 127.0.0.1,我正在本地处理服务器。

如何从 localhost 访问 mongo shell?

编辑已解决。问题是一个 iptables 规则,它不允许本地连接到 mongodb。

【问题讨论】:

  • 尝试删除 /var/lib/mongodb/mongod.lock 文件并重启服务。然后尝试连接。
  • 删除锁重启服务后连接失败,报同样的错误信息。
  • 奇怪!只是为了测试,停止服务并手动运行 mongodb,然后尝试使用“mongo”进行连接。你可以简单地运行'mkdir -p /data/db && chown -R $USER:$USER /data/db && mongod'。在此之后打开另一个 shell 并运行“mongo”。如果这可行,那么很可能,它有一些权限问题。
  • 再次失败并出现同样的错误。
  • 您有防火墙吗?运行 'iptables -L'

标签: node.js mongodb nginx debian rocket.chat


【解决方案1】:

您可以通过将目录更改为您的 MongoDb 安装并输入 ./bin/mongo 来访问 mongodb shell。请参阅本指南:enter link description here

【讨论】:

  • 问题是与外壳的连接不起作用。如果我没记错的话,该链接明确建议更改为 mongo 可执行文件的目录并启动它。我做了什么(如 OP 所示)但无法连接。
  • mongod 守护进程是否正在运行?命令的输出是什么:“service mongod status”
  • 是的,它正在运行 - active (running)
  • 输入netstat命令时是否显示mongodb服务?您可以使用以下命令进行检查:netstat -tulpn
  • 是的,正如另一位用户建议的那样,我需要检查防火墙规则。
【解决方案2】:

运行以下命令:

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

信用:Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused

【讨论】:

  • 我应该编辑我的帖子,我已经解决了这个问题。我的防火墙阻止了本地连接。不过感谢您的意见!
【解决方案3】:

要从不干净的关机中恢复,请在终端中运行这些

killall mongod
cd ~
./mongod --repair
rm -rfv data/mongod.lock
./mongod

如果你想删除--httpinterface warning then run,试试这个:

echo 'mongod --bind_ip=$IP --dbpath=data --nojournal --rest --httpinterface "$@"' > mongod

(只需要运行一次)在你运行之前

./mongod

我希望这会有所帮助。干杯!

【讨论】:

    猜你喜欢
    • 2015-02-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-10
    • 2017-07-14
    • 1970-01-01
    • 2015-09-07
    • 1970-01-01
    • 2011-12-18
    相关资源
    最近更新 更多