Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Windows Server 2008上安装MongoDB_Mongodb_Windows Server 2008 - Fatal编程技术网

在Windows Server 2008上安装MongoDB

在Windows Server 2008上安装MongoDB,mongodb,windows-server-2008,Mongodb,Windows Server 2008,我是mongoDB的新手,到目前为止我很喜欢它,我在本地为我的开发人员工作,在那里我让mongo在Win7上作为服务运行。我在Win server 2008上的VPS上以服务的形式运行它。当我在服务器上时,它工作正常,但我不知道如何设置它,以便我可以从服务器外部访问它?找不到关于这个的好文件。此外,我很难从本地计算机在服务器上执行备份/恢复,因为我无法从服务器外部看到它 我还想了解更多有关主/从和居屋的信息,以便正确设置 当我运行netstat-anb时,我得到 TCP 127.0.0

我是mongoDB的新手,到目前为止我很喜欢它,我在本地为我的开发人员工作,在那里我让mongo在Win7上作为服务运行。我在Win server 2008上的VPS上以服务的形式运行它。当我在服务器上时,它工作正常,但我不知道如何设置它,以便我可以从服务器外部访问它?找不到关于这个的好文件。此外,我很难从本地计算机在服务器上执行备份/恢复,因为我无法从服务器外部看到它

我还想了解更多有关主/从和居屋的信息,以便正确设置

当我运行netstat-anb时,我得到

  TCP    127.0.0.1:27017        0.0.0.0:0              LISTENING
 [mongod.exe]
  TCP    127.0.0.1:27017        127.0.0.1:62990        ESTABLISHED
 [mongod.exe]
  TCP    127.0.0.1:28017        0.0.0.0:0              LISTENING
这就是mongod.exe的全部内容

[编辑]

我尝试用--bind_ip xxx.x.x.xx重新安装,现在xxx.x.x.xx:27017可以工作,但只有在远程服务器上,如果我尝试从任何地方访问失败的话

此外,我关闭了防火墙,它没有改变任何事情


非常感谢

如果你不能远程访问它,听起来像是防火墙问题。默认情况下,mongod侦听端口27017。该端口是否可以从您尝试连接的计算机访问?这听起来更像是防火墙问题,而不是mongod的问题。您是否可以编辑您的问题以提供mongo服务运行的命令行


关于blog中副本集的信息,这是一个很好的来源。

尝试从管理员DOS提示符运行此命令,以打开对默认MongoDB端口27017的外部访问:

C:\> netsh.exe advfirewall firewall add rule name="MongoDB (port 27017)"
        dir=in action=allow protocol=TCP localport=27017

我想我找到了实现它的方法。首先,允许在防火墙上使用端口27017。然后,我使用配置文件将Mongo作为服务安装。我创建了mongos.conf,如下所示:

dbpath = d:\mongo\data
logpath = d:\mongo\logs
noauth = true # use 'true' for options that don't take an argument
我保存在:d:\mongo\mongos.conf下

然后我在命令行中执行了以下操作:

mongod --config d:\mongo\mongos.conf --reinstall
关键是确保配置文件中没有bind_ip config密钥。因此,它将允许mongo绑定到任何ip。然后你就可以去

并查看以下消息:

You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number
您还应该能够访问:

(您的ip)并且您应该看到相同的输出

  • 为公用和专用启用Windows防火墙27017端口
  • 退出当前mongoDB,重新运行mongod
  • 有关详细信息,请参阅本文
    对于MongoDb 4.x,我做了以下几件事:

  • 我编辑了防火墙并在主机上启用了27017端口访问
  • 默认情况下,MongoDb安装在Windows中的
    C:\Program Files\MongoDb\Server\4.0\bin
    上,它包含一个名为
    mongod.cfg
    的文件

    • 我在管理模式下打开记事本++编辑器并编辑文件
    • 查找
      bindIp:127.0.0.1
      并添加主机ip
      bindIp:127.0.0.11992.168.1.xxx
  • 重新启动MongoDb服务,您应该能够从另一台计算机访问它
    192.168.1.xxx:27017

  • 在mongod.cfg(位于C:\Program Files\MongoDB\Server\4.0\bin)中,只需更新:

    # network interfaces
    net:
      port: 27017
    #  bindIp: 127.0.0.1
      bindIp: 0.0.0.0
    
    让mongo db绑定到0.0.0.0,即所有接口,而不仅仅是127.0.0.1。
    然后,它将允许连接到所有接口。

    安装mongo和setup

  • 在选中windows服务的情况下安装mongodb

  • 允许防火墙中的特定端口:27017

  • 在mongod.cfg(位于C:\Program Files\MongoDB\Server\4.4\bin)中,只需注释bindIp:127.0.0.1并添加新行bindIp:0.0.0:

  • #网络接口
    净:
    港口:27017
    #bindIp:127.0.0.1
    bindIp:0.0.0.0
    
    最后两个步骤将允许您进行远程访问

    创建用户

  • 打开cmd转到安装路径,例如C:\Program Files\MongoDB\Server\4.4\bin

  • 在cmd类型mongo中 C:\ProgramFiles\MongoDB\Server\4.4\bin>mongo

  • 然后键入use admin(admin是数据库) 最后呢

  • db.createUser({user:“adminName”,pwd:“xxxxxx”,角色:[“readWrite”]})

  • 在服务中重新启动mongo服务


  • 嗨,贾斯汀,我已经有端口27017例外的windows防火墙,TCP协议。在localhost:27017服务器上,我可以看到它可以工作,但从外部看不到。Mongo使用Mongo DB作为服务运行。它在本地服务器上运行正常,但我无法从外部访问它。您的mongo服务器和您试图访问它的机器之间是否有硬件防火墙?从尝试从中远程连接到服务器的计算机上运行nmap,查看端口是否已过滤。另外,mongo运行的完整命令行是什么?您正在使用--bind_ip吗?最后,使用netstat确保mongo正在0.0.0.0:27017上监听。我将mongod.exe作为一个服务运行,如本文所述:如果没有--bind_ip,您认为这可能是它无法工作的原因吗?当我运行netstat时,我在27017端口上什么也得不到。那篇文章有点过时了。看看我写的那封信。大约一年后,我现在面临着这个问题,我的客户希望更改共享主机,因此我需要从其他服务器访问数据库,我用更多信息更新了这个问题。您的问题与防火墙有关。您是否尝试过使用nmap进行端口扫描或从远程计算机远程连接到这些端口?再次感谢Justin的帮助!我无法在端口27017上打开与主机的连接:连接失败…即使我关闭了防火墙?这与在防火墙窗口中添加异常相同吗?它告诉我netsh.exe不是有效的Win32应用程序,运行netsh与通过GUI打开端口相同。也许有什么东西阻塞了27017端口,路由器?或者您的本地计算机阻止了出站连接?它不是本地计算机,因为我们在另一台服务器上进行了尝试,并且它工作正常,看起来托管服务正在阻止它。我打开了一张支持票,但还没有得到任何回复,无论如何,泰克斯需要帮助!