您可能会在日志中看到类似的内容:
2016-03-10T21:17:23.433-0600 I CONTROL ***** SERVER RESTARTED *****
2016-03-10T21:17:23.435-0600 I ACCESS Initialized External Auth Session
2016-03-10T21:17:23.437-0600 I CONTROL [initandlisten] MongoDB starting : pid=1323 port=27017 dbpath=/var/lib/mongodb 64-bit host=ubuntu14
2016-03-10T21:17:23.437-0600 I CONTROL [initandlisten] db version v3.0.8-1.3
2016-03-10T21:17:23.437-0600 I CONTROL [initandlisten] git version: 354592f7850d8d113690f610049baec94812da2b
2016-03-10T21:17:23.437-0600 I CONTROL [initandlisten] build info: Linux vps-trusty-x64-01 2.6.32-042stab112.15 #1 SMP Tue Oct 20 17:22:56 MSK 2015 x86_64 BOOST_LIB_VERSION=1_49
2016-03-10T21:17:23.437-0600 I CONTROL [initandlisten] allocator: tcmalloc
2016-03-10T21:17:23.437-0600 I CONTROL [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1", port: 27017 }, processManagement: { pidFilePath: "/var/run/mongod.pid" }, storage: { dbPath: "/var/lib/mongodb", engine: "rocksdb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } }
2016-03-10T21:17:23.503-0600 I STORAGE [initandlisten] exception in initAndListen: 28574 Cannot start server. Detected data files in /var/lib/mongodb created by storage engine 'mmapv1'. The configured storage engine is 'rocksdb'., terminating
2016-03-10T21:17:23.503-0600 I CONTROL [initandlisten] dbexit: rc: 100
如果是这样,问题是您已经启动了服务器,指定了 Rocksdb 引擎,但仍在 dbpath 中使用不同的存储引擎数据集。为了解决此问题,您需要从 dbpath 中删除文件以使用新引擎。
如果您想要保留 MongoDB 中的现有数据,那么您首先需要使用 mongodump 工具备份可以使用 mongorestore 恢复的信息切换存储引擎并重新启动服务器后。
在更改 /etc/mongod.conf 中的存储引擎后,要从干净的 dbpath 开始,请发出以下命令(以 root 身份):
注意:这将永久删除存储在 MongoDB 数据库中的所有数据:
# service mongod stop
# rm -rf /var/lib/mongodb/*
# service mongod start
几秒钟后,您应该会在日志文件的底部看到以下消息。
# tail /var/log/mongodb/mongod.log
2016-03-10T21:25:30.398-0600 I CONTROL ***** SERVER RESTARTED *****
2016-03-10T21:25:30.400-0600 I ACCESS Initialized External Auth Session
2016-03-10T21:25:30.402-0600 I CONTROL [initandlisten] MongoDB starting : pid=1530 port=27017 dbpath=/var/lib/mongodb 64-bit host=ubuntu14
2016-03-10T21:25:30.402-0600 I CONTROL [initandlisten] db version v3.0.8-1.3
2016-03-10T21:25:30.402-0600 I CONTROL [initandlisten] git version: 354592f7850d8d113690f610049baec94812da2b
2016-03-10T21:25:30.402-0600 I CONTROL [initandlisten] build info: Linux vps-trusty-x64-01 2.6.32-042stab112.15 #1 SMP Tue Oct 20 17:22:56 MSK 2015 x86_64 BOOST_LIB_VERSION=1_49
2016-03-10T21:25:30.402-0600 I CONTROL [initandlisten] allocator: tcmalloc
2016-03-10T21:25:30.402-0600 I CONTROL [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1", port: 27017 }, processManagement: { pidFilePath: "/var/run/mongod.pid" }, storage: { dbPath: "/var/lib/mongodb", engine: "rocksdb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } }
2016-03-10T21:25:30.808-0600 I NETWORK [initandlisten] waiting for connections on port 27017