我有以下配置为mongod.cfg:
systemLog:
destination: file
path: "C:\Program Files\MongoDB 2.6 Standard\logs\mongo.log"
logAppend: true
storage:
dbPath: "C:\Program Files\MongoDB 2.6 Standard\data\"
net:
http:
enabled: true
我在Windows 7 64位上运行MongoDB 2.6.3,运行:mongod --config mongod.cfg
我在文件夹内,我知道它正在解析正确的mongod.cfg。但是,我得到以下输出:
Unrecognized option: net.http
try 'mongod --help' for more information
我想把头发拉出来,想知道它为什么不解析。我直接从the configuration page on Mongo's site阅读,但我仍然无法使其发挥作用。有什么想法吗?
答案 0 :(得分:3)
原来我在标题后需要空格。它必须是:
systemLog:<space>
destination: file
path: "C:\Program Files\MongoDB 2.6 Standard\logs\mongo.log"
logAppend: true
storage:<space>
dbPath: "C:\Program Files\MongoDB 2.6 Standard\data\"
net:<space>
http:<space>
enabled: true
答案 1 :(得分:0)
将身份验证添加到MongoDB管理员用户时,我也遇到了类似的问题。安装MongoDB 3.0.8或3.0.15时,出现错误:
CONTROL 修补程序 kb2731284或未安装更高版本的更新将文件归零。
无法在操作系统为win7企业版的PC上安装kb2731284(从MS的邮件中获得),没有在线有效的解决方法。
无法识别的选项:net.http
尝试“ mongod --help”以获取更多信息
然后将MongoDB更新到v3.6可以避免一开始的错误,但是现在,如果要使用 mongod.cfg 文件为MongoDB用户添加auth,则需要使用以下内容:< / p>
systemLog:
destination: file
path: "D:\\mongodb\\log\\mongodb.log"
logAppend: true
storage:
dbPath: "D:\\mongodb"
journal:
enabled: true
engine: wiredTiger
net:
port: 27017
setParameter:
enableLocalhostAuthBypass: false
mongod.cfg
。
创建文件夹C:\mongodb\data\
,
然后创建子文件夹C:\mongodbdata\log
,
将mongod.cfg文件复制到MongoDB bin的相关位置,例如C:\ProgramFiles\MongoDB\Server\3.6\bin\
。
然后将enableLocalhostAuthBypass
文件中的值mongod.cfg
设置为true。
以管理员权限打开cmd.exe:
"C:\ProgramFiles\MongoDB\Server\3.6\bin\mongod.exe" "--config=c:\ProgramFiles\MongoDB\Server\3.6\bin\mongod.cfg" --auth --install
如果mongodb服务未运行,请键入net start mongodb
C:\Users\{username}\Desktop>netstart mongodb
> use admin
> db.createUser("admin", "yourpassword", roles: ["root"]})
> db.auth(user, yourpassword)
从公用行重启MongoDB。
将值enableLocalhostAuthBypass
设置为false
。
自从MongoDB 3.6(实际上是v3.2之后的任何版本)以来,已删除了net.http
选项(引用:https://docs.mongodb.com/manual/reference/configuration-options/)。
那么所有遇到的问题都可以得到彻底解决。