Mongodb 默认情况下,如何让mongod从/bin/mongod.cfg加载配置?

Mongodb 默认情况下,如何让mongod从/bin/mongod.cfg加载配置?,mongodb,Mongodb,我在本地安装了mongodb服务器(v4.0),但我想更改它侦听的端口。我已经阅读了这些文档,并在/bin/中创建了一个带有有效YAML的ANSI格式的mongod.cfg文件。以下是我的配置: net: bindIp: localhost port: 30000 storage: dbPath: C:\mongodb\data\db journal: enabled: true systemLog: destination: file path: C:\mong

我在本地安装了mongodb服务器(v4.0),但我想更改它侦听的端口。我已经阅读了这些文档,并在
/bin/
中创建了一个带有有效YAML的ANSI格式的
mongod.cfg
文件。以下是我的配置:

net:
  bindIp: localhost
  port: 30000
storage:
  dbPath: C:\mongodb\data\db
  journal:
    enabled: true
systemLog:
  destination: file
  path: C:\mongodb\data\log\mongodb.log
  quiet: true
  logAppend: true
我可以在传入命令
mongod--config c:\MongoDB\bin\mongod.cfg
时显式加载它,但我希望每次重新启动服务时都加载它

我的问题:

  • 当我只运行
    mongod
    时,我得到一个错误,它无法在
    c:\data\…
    中找到数据,这不是配置中设置的。它不是从该文件加载配置,我如何将其作为默认行为实现(或者至少以其他方式更改默认端口)

  • 当我运行
    mongod--config c:\MongoDB\bin\mongod.cfg
    时,它会创建一个新的MongoDB实例,该实例正在该端口上侦听,但不会加载我的数据库。在c:\mongodb\data\db文件夹中,我有一个文件夹
    diagnostic.data
    journal
    ,还有许多
    .wt
    文件,它们的名称有
    collection-[integer]-[randomNumber].wt
    \u mdb.catalog.wt
    和其他一些文件(包括一些WiredTiger文件),所以我相信这是正确的目录

  • 编辑:

    运行
    db.serverCmdLineOpts()
    的结果:

    {
    “argv”:[
    “c:\\MongoDB\\bin\\mongod.exe”,
    “--config”,
    “c:\\MongoDB\\bin\\mongod.cfg”,
    “--服务”
    ],
    “已解析”:{
    “config”:“c:\\MongoDB\\bin\\mongod.cfg”,
    “净额”:{
    “bindIp”:“localhost”,
    “港口”:30000
    },
    “流程管理”:{
    “Windows服务”:{
    “说明”:“MongoDB的服务”,
    “displayName”:“MongoDB服务”,
    “serviceName”:“MongoDB”
    }
    },
    “服务”:没错,
    “储存”:{
    “dbPath”:“C:\\mongodb\\data\\db”,
    “日记账”:{
    “已启用”:真
    }
    },
    “系统日志”:{
    “目的地”:“文件”,
    “logAppend”:正确,
    “路径”:“C:\\mongodb\\data\\log\\mongodb.log”,
    “安静”:真的吗
    }
    },
    “好”:1
    }
    
    使用
    mongod--config c:\MongoDB\bin\mongod.cfg--Install安装MongoDB作为服务。相应地添加到mongod.cfg:

    processManagement:
       windowsService:
          serviceName: MongoDB
          displayName: MongoDB Service
          description: Service of MongoDB
    

    然后使用or
    net start MongoDB
    net stop MongoDB
    命令启动/停止MongoDB。默认情况下,它将自动从您的Windows启动。

    您确定吗?它应该从
    C:\mongodb\data\db
    加载数据库,或者查看一下日志文件。一切正常。可能是您无意中创建了另一个mongo服务。谢谢您,我刚刚尝试了这一点,并使用
    net start/stop
    重新启动了该服务。出于某种原因,我的实例仍在收听27017,而不是30000。退一步说,有没有其他方法可以改变默认端口?几个月前,当我第一次安装MongoDB时,我将其作为一项服务安装。顺便说一句,谢谢您的帮助,我必须使用本文中的命令卸载该服务,然后才能再次安装该服务。它现在监听端口30000并作为服务运行,这正是我想要的。但是,它仍然没有加载数据库-日志中没有任何错误,它正在写入
    c:\mongodb\data\db
    directory中的正确日志文件。我只有一个数据库,其中包含六个集合,所以我只是手工重新导入了它们。它们都导入到我在配置文件中指定的
    c:\mongodb\data\db
    文件夹中,所以我真的不知道为什么以前无法从以前的服务器上看到它们。集合本身可能存在权限问题。。。无论如何,非常感谢您的帮助。使用命令
    db.serverCmdLineOpts()
    查看实际加载和使用的配置。我刚刚用结果更新了我的问题。再次感谢您继续关注。