MongoDB Requested option conflicts with current storage engine option for directoryPerDB

win7 64 位 安装mongodb 3.2 ,安装后添加服务到windows中,正常。


配置文件如下:

dbpath= D:\MongoDB\Server\3.2\data\db
logpath= D:\MongoDB\Server\3.2\data\log\mongodb.log
port = 27017
logappend = true
journal = true

但是启动服务报错:

MongoDB Requested option conflicts with current storage engine option for directoryPerDB_第1张图片


windows 系统事件提示错误:

MongoDB 服务因 无法创建另一个系统信号灯。 服务特定错误而停止。


mongodb.log 记录错误如下:

2016-12-23T10:55:31.040+0800 I CONTROL  [main] ***** SERVER RESTARTED *****
2016-12-23T10:55:31.195+0800 I CONTROL  [main] Hotfix KB2731284 or later update is not installed, will zero-out data files
2016-12-23T10:55:31.195+0800 I CONTROL  [main] Trying to start Windows service 'MongoDB'
2016-12-23T10:55:31.196+0800 I STORAGE  [thread1] Service running
2016-12-23T10:55:31.196+0800 I CONTROL  [initandlisten] MongoDB starting : pid=5212 port=27017 dbpath=D:\MongoDB\Server\3.2\data\db 64-bit host=Itinside-89
2016-12-23T10:55:31.196+0800 I CONTROL  [initandlisten] targetMinOS: Windows 7/Windows Server 2008 R2
2016-12-23T10:55:31.196+0800 I CONTROL  [initandlisten] db version v3.2.7
2016-12-23T10:55:31.196+0800 I CONTROL  [initandlisten] git version: 4249c1d2b5999ebbf1fdf3bc0e0e3b3ff5c0aaf2
2016-12-23T10:55:31.196+0800 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1p-fips 9 Jul 2015
2016-12-23T10:55:31.196+0800 I CONTROL  [initandlisten] allocator: tcmalloc
2016-12-23T10:55:31.196+0800 I CONTROL  [initandlisten] modules: none
2016-12-23T10:55:31.196+0800 I CONTROL  [initandlisten] build environment:
2016-12-23T10:55:31.196+0800 I CONTROL  [initandlisten]     distmod: 2008plus-ssl
2016-12-23T10:55:31.196+0800 I CONTROL  [initandlisten]     distarch: x86_64
2016-12-23T10:55:31.196+0800 I CONTROL  [initandlisten]     target_arch: x86_64
2016-12-23T10:55:31.196+0800 I CONTROL  [initandlisten] options: { config: "D:\MongoDB\Server\3.2\mongod.cfg", net: { port: 27017 }, service: true, storage: { dbPath: "D:\MongoDB\Server\3.2\data\db", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "D:\MongoDB\Server\3.2\data\log\mongodb.log" } }
2016-12-23T10:55:31.196+0800 I -        [initandlisten] Detected data files in D:\MongoDB\Server\3.2\data\db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2016-12-23T10:55:31.196+0800 I STORAGE  [initandlisten] exception in initAndListen: 72 Requested option conflicts with current storage engine option for directoryPerDB; you requested false but the current server storage is already set to true and cannot be changed, terminating
2016-12-23T10:55:31.197+0800 I CONTROL  [serviceStopWorker] dbexit:  rc: 49

存储引擎有冲突? 因为刚才在命令行启动过一次服务,生成了数据文件等。正常来说,mongodb 3.2 默认存储引擎是 WiredTiger ,应该不会冲突。错误提示数据文件也是由该存储引擎创建的。找了好久,无法解答。看到数据文件中有 一个文件  storage.bson

MongoDB Requested option conflicts with current storage engine option for directoryPerDB_第2张图片


把文件删除,启动服务,正常启动了!!!


进入mongodb ,查看当前存储引擎:

db.serverStatus().storageEngine
MongoDB Requested option conflicts with current storage engine option for directoryPerDB_第3张图片

存储引擎是 WiredTiger 没错。只是不知怎么地  storage.bson 不一样。


参考:

Storage Engines

Compatibility Changes in MongoDB 3.2


你可能感兴趣的:(MongoDB)