MongoDB的管理命令与安全命令(二)
?
1、正常启动mongod --dbpath /usr/mongo/data --logfile /var/mongo.log说明:指定数据存储目录和日志目录,如果采用安全认证模式,需要加上--auth选项,如:mongod --auth --dbpath /usr/mongo/data --logfile /var/mongo.log?2、以修复模式启动mongod?--repair以修复模式启动数据库。实际很可能数据库数据损坏或数据状态不一致,导致无法正常启动MongoDB服务器,根据启动信息可以看到需要进行修复。或者执行:mongod -f /etc/mongodb.conf --repair3、终止服务器进程db.shutdownServer()终止数据库服务器进程。或者,可以直接kill掉mongod进程即可。??
1、以安全认证模式启动mongod --auth --dbpath /usr/mongo/data --logfile /var/mongo.log使用--auth选项启动mongod进程即可启用认证模式。{ "user" : "admin", "readOnly" : false, "pwd" : "995d2143e0bf79cba24b58b3e41852cd" }3、安全认证db.auth("admin", ",%F23_kj~00Opoo0+\/")数据库安全认证。认证成功显示结果:
{ "user" : "admin", "readOnly" : false, "pwd" : "995d2143e0bf79cba24b58b3e41852cd" }如果是认证用户,执行某些命令,可以看到正确执行结果,如下所示:
db.system.users.find() { "_id" : ObjectId("4ef940a13c1fc4613425acc8"), "user" : "admin", "readOnly" : false, "pwd" : "995d2143e0bf79cba24b58b3e41852cd" }?否则,认证失败,则执行相关命令会提示错误:
db.system.users.find() error: { "$err" : "unauthorized db:admin lock type:-1 client:127.0.0.1", "code" : 10057 }4、为数据库写数据(同步到磁盘)加锁db.runCommand({fsync:1,lock:1})
{ "info" : "now locked against writes, use db.$cmd.sys.unlock.findOne() to unlock", "ok" : 1 }5、查看当前锁状态db.currentOp()说明:查询结果如下所示:
{ "inprog" : [ ], "fsyncLock" : 1, "info" : "use db.$cmd.sys.unlock.findOne() to terminate the fsync write/snapshot lock" }其中,fsyncLock为1表示MongoDB的fsync进程(负责将写入改变同步到磁盘)不允许其他进程执行写数据操作6、解锁use admin
{ "ok" : 1, "info" : "unlock requested" }可以执行命令查看锁状态:
{ "inprog" : [ ] }说明当前没有锁,可以执行写数据操作。