Mongodb 默认情况下,如何让mongod从/bin/mongod.cfg加载配置?
我在本地安装了mongodb服务器(v4.0),但我想更改它侦听的端口。我已经阅读了这些文档,并在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
/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
然后使用ornet 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()
查看实际加载和使用的配置。我刚刚用结果更新了我的问题。再次感谢您继续关注。