无法连接到MongoDB

无法连接到MongoDB,mongodb,ubuntu,openvz,Mongodb,Ubuntu,Openvz,我刚刚安装了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,但没有提供任何帮助) 配置: #mongodb.conf # Wh

我刚刚安装了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,但没有提供任何帮助)

配置:

#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
我已经检查了日志,只有启动信息显示在那里

我还检查了deamon是否也在运行,它是-我甚至尝试用
--fork
手动运行它

以前有没有人遇到过这个问题?或者有什么建议

Thx

更新:

重新启动后-以下是日志:

** 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
必须通过运行
mongo 199.21.114.XX
来指定IP(199.21.114.XX)

否则,如果希望它也在本地主机上侦听,则应删除配置文件中的
bind\u ip
设置


更新检查您的防火墙配置。由于您连接到外部IP,因此可以将其配置为阻止,甚至可以从本地框进行阻止。

默认情况下,运行
mongo
控制台命令将在本地主机上查找mongodb,因此,
127.0.0.1
IP是您的本地环回。此外,默认配置是ig for
mongod
应该在本地主机上可用。最好现在就开始这样做,除非您已启用身份验证。请确保您已启用身份验证,或者您的数据库正在公共ip上公开运行

如果要连接到本地主机或默认配置以外的主机,请执行以下操作:

mongo <host>
mongo

我通过注释掉我的
/etc/mongod.conf
文件中的以下行,解决了这个问题

# Listen to local interface only. Comment out to listen on all interfaces. 
#bind_ip = 127.0.0.1
您需要按照此配置更改重新启动mongod进程

sudo service mongod restart

以下步骤可能对您有所帮助:

  • 打开终端并运行“sudorm/var/lib/mongodb/mongod.lock
  • 现在运行“sudo mongod--repair
  • 现在“sudo启动mongodb
  • 现在只需检查mongodb status的状态“sudo status mongodb

  • 5最后,只需调用命令“mongo

    我也有同样的问题,只是因为这个愚蠢的错误

    首先删除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
    
    用于收听所有可用IP

    bindIp: [127.0.0.1,10.128.0.2]
    
    重新启动mongodb

    sudo service mongod start
    
    希望这个答案对/etc/mongod.conf中的某人有所帮助

    # network interfaces
    net:
      port: 27017
     #bindIp: 127.0.0.1
    bindIp: privateIp
    
    我变了

    bindIp:127.0.0.1

    bindIp:0.0.0.0

    都是端口。是的,我知道这很危险,但我是在内部网络上运行的


    顺便说一句,我在Ubuntu18下运行时,注释掉了
    #bindIp:127.0.0.1
    对我不起作用。

    另一种方法是添加mongod选项param bind\u ip

    mongod -–help
    
    --绑定\u ip arg以逗号分隔的ip地址列表到 默认情况下在本地主机上侦听

    --绑定\u ip\u所有绑定到所有ip地址

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

    如果您使用的是windows,请运行服务 然后检查mongoDB服务器是否正在运行,如果没有运行,请启动它

    默认情况下,mongoDB服务器在localhost:27017上运行。
    单击localhost:27017首先创建管理员用户。

    mongod
    正在运行但尚未“正常”运行时,我遇到了这个问题。我猜可能有更好的方法等待安装后出现,但添加
    sleep 10
    似乎可以解决这个问题

    一种稍微不太像穴居人的方法可能是
    tail-f
    它的日志文件,并查找它告诉您它正在您指定的接口上侦听的事件

    locallog=/var/log/mongodb/mongod.log
    sudo-u mongodb touch“$log”
    服务mongod启动&
    启动器=$!
    尾部-0f“$log”|
    grep-q“端口:27017”
    等待“$launcher”
    睡眠1
    
    最后的
    睡眠
    是一种有点绝望的行为;它记录启动后似乎需要一段时间,直到它正确地启动并收听


    另请参见

    添加了一个更新以检查您的防火墙配置,因为您说您已经尝试在命令行中指定了IP。目前没有防火墙配置,因为它是一个空服务器。您确定吗?如果
    netstat-a
    显示您正在监听27017,但您无法连接到27017(通过mongo或telnet),可能有防火墙。
    sudo iptables-L-n
    检查规则。啊-我检查过了,它似乎没有监听任何端口…有什么想法吗?尝试重新启动它,确保日志没有抛出任何错误。我应该补充一点,我尝试过mongo 199.21.114.XX:xxxxxxUpdate-使用Docker和Docker-Compose。您保存了我的Life!非常感谢!同上——好吧,也许不是我的生活,但肯定是我的一个小时:)这对我很有效。之后不得不重新启动mongod。sudo服务mongodb重启。经过漫长的旅程,我终于得到了你的答案。谢谢:)在这个答案对我有用之前,我在这里尝试了其他一些答案。删除mongod.lock或允许在ip表中的端口27017上输入和输出是否有可能在将来产生负面影响?注释掉
    #bind_ip=127.0.0.1
    将向任何人/任何地方打开它。确保您的防火墙/iptables已过滤未经请求的连接和/或在
    /etc/mongod.conf
    中添加
    安全:授权:“已启用”
    。任何人/任何地方都可以向您的数据库写入数据。我想您的意思是
    sudo服务mongodb start
    。此外,括号或逗号后的空格也不适用于我。所以我的是这样的:
    bind_ip:127.0.0.1192.168.222.222
    sudo status mongod