[转载]MongoDB常用命令 - dayang - 博客园

baacloud免费翻墙vpn注册使用

[转载]MongDB – dayang – 博客园.

启动方式一:执行命令行  mongod.exe -dbpath D:\data\db          -dbpath为数据库存放路径命令,后面空格加路径(注意路径不能存在空格)

启动方式二:以windows服务方式安装MongoDB服务;

–fork 守护进程

执行命令行 mongod –install –logpath c:\mongodblog –dbpath d:\data\db

–logpath 为设置日志文件,日志文件路径必须指向文件而不是一个目录

  –install –dbpath D:\MongoDB\win32\data –logpath D:\MongoDB\win32\mongodb.log
修改默认端口:
–port
$ ./mongdb –port 20111
把服务端口修改为20111,这个一方面是为了安全,使用默认端口容易被一些恶意的人发现做手脚

 

Mongodb 删除

提供一个命令

mongodb  –dbpath D:\MongoDB\win32\data –logpath D:\MongoDB\win32\mongodb.log -remove

当然也可以使用sc delete MongoDB来删除服务项

最好还是在注册表去找mongo的选项,并一一删除 重启在重新安装

 

Mongodb的关闭:
前台运行:
如果没有使用–fork,直接可以前台退出终端关闭。通过这种方式,Mongodb将会自己做清理退出,把没有写好的数据写完成,并最终关闭数据文件。要注意的是这个过程会持续到所有操作都完成。
后台运行:
如果使用–fork在后台运行mongdb服务,那么就要通过向服务器发送shutdownServer()消息来关闭。
1、普通命令:
$ ./mongod
> use admin
> db.shutdownServer()
要注意的是,这个命令只允许在本地,或是一个经过认证的客户端。
2、如果这是一个主从式的复制集群,在1.9.1版本后将按下面的步骤来关闭
  • 检查从Mongodb的数据更新时间
  • 如果所有的从Mongodb和主的时间差都超过10,这个时候不会关闭mongodb(在这种情况下面,我们可以通过配置timeoutSecs的方式来让从Mongodb完成数据的更新)
  • 如果其中有一个从Mongodb与主服务时间差在10秒内,那么主服务器将会关闭,并且等待从Mongodb更新完成并关闭。
3、如果没有up-to-date 从Mongodb且你想强制关闭服务,可以通过添加force:true;命令如下:
> db.adminCommand({shutdown : 1, force : true})
> //or
> db.shutdownServer({force : true})
4、指定特定超时时间的关闭服务器,命令同上,另外加上一个timeoutsec:参数
> db.adminCommand(shutdown : 1, force : true, timeoutsec : 5)
> //or
> db.shutdownServer({force : true, timeoutsec : 5})

配置文件(外部配文件置):

mongod –config D:\mongodb\mongodb.config

mongodb.config文件内容:

port = 20000 dbpath = D:/mongodb/dbs logpath = D:/mongodb/logs.log
logappend = true

正确停止MongoDB:

mongo -port 20000 use admin db.shutdownServer();

安全认证:

  1.添加用户

   db.addUser(username, password,[ readOnly=false])

[ readOnly=false]参数可选,如果为true,用户只有查询权限。

admin数据库下面添加的用户  被视为超级用户(管理员)。

2.用户认证 db.auth(username, password)

3.重启服务端,加入 –auth命令选项  开启安全检查

mongod –dbpath D:/mongodb/db  –port 20000 –logpath = D:/mongodb/logs.log –logappend –auth

例子:

1. 添加一个超级用户:

a.添加用户

>mongo -port 20000 > use admin switched to db admin > db.addUser(“admin”,”admin123″); { “n” : 0, “connectionId” : 4, “err” : null, “ok” : 1 } {         “user” : “admin”,         “readOnly” : false,         “pwd” : “6f09f2f35e3a5e225af66fe3868e4fb7”,         “_id” : ObjectId(“50114eb027e4ae802c6bda45”) } >

b.认证用户

> use admin switched to db admin > db.auth(“admin”,”admin123″); 1

c.重启服务端 加入–auth参数

登录后不能正常查询

>mongo –port 20000 test MongoDB shell version: 2.0.4 connecting to: 127.0.0.1:20000/test > db.test.find(); error: {         “$err” : “unauthorized db:test lock type:-1 client:127.0.0.1”,         “code” : 10057 } >

d.使用用户名 密码登录

>mongo –port 20000 admin  -u admin -p MongoDB shell version: 2.0.4 Enter password: connecting to: 127.0.0.1:20000/admin > use test switched to db test > db.test.find(); >

2.添加一个普通用户

> use test switched to db test > db.addUser(“abc”,”abc123″); { “n” : 0, “connectionId” : 9, “err” : null, “ok” : 1 } {         “user” : “abc”,         “readOnly” : false,         “pwd” : “30fc2d5cc077f71cc81d3c82afc9d361”,         “_id” : ObjectId(“501157ed1d2319c203e2e8d3”) }

认证:

> db.auth(“abc”,”abc123″); 1

用户名 密码登录

mongo –port 20000 test  -u abc -p MongoDB shell version: 2.0.4 Enter password: connecting to: 127.0.0.1:20000/test > db.test.find();

查询用户

db.system.users.find()

删除用户:

db.system.users.remove({user:”admin”});

限制ip访问:

使用–bindip 参数, 只能被–bindip参数指定的ip地址访问.

如:mongod –bindip localhost

数据文件备份:

>mongodump -port 20000 -d test -u admin -p-d test

备份的数据库名称会在当前目录下创建一个dump目录,用于存放备份出来的文件,当然也可以(-o)指定备份存放的目录。

mongodump -port 20000 -d test -o c:/ -u admin -p

mongodump –help 查看其他选项

数据恢复:

>mongorestore -port 20000 -d test –directoryperdb c:/test/  –drop -u admin -p

–directoryperdb指定备份的目录

–drop 恢复的时候先删除

例:

a,先删除test数据库

> use test; switched to db test > db.dropDatabase(); { “dropped” : “test”, “ok” : 1 } > show dbs; admin   0.03125GB local   (empty)

b.恢复

mongorestore -port 20000 -d test –directoryperdb c:/test/  –drop -u admin -p

监控:

1.serverStatus命令

use admin db.serverStatus();

db.serverStatus(); {         “host” : “admin:20000”,         “version” : “2.0.4”,         “process” : “mongod”,         “uptime” : 16,         “uptimeEstimate” : 14,         “localTime” : ISODate(“2012-07-26T13:26:38.375Z”),         “globalLock” : {                 “totalTime” : 15421875,                 “lockTime” : 0,                 “ratio” : 0,                 “currentQueue” : {                         “total” : 0,                         “readers” : 0,                         “writers” : 0                 },                 “activeClients” : {                         “total” : 0,                         “readers” : 0,                         “writers” : 0                 }         },         “mem” : {                 “bits” : 32,                 “resident” : 15,                 “virtual” : 57,                 “supported” : true,                 “mapped” : 0         },         “connections” : {                 “current” : 1,                 “available” : 19999         },         “extra_info” : {                 “note” : “fields vary by platform”,                 “page_faults” : 4032,                 “usagePageFileMB” : 19,                 “totalPageFileMB” : 3871,                 “availPageFileMB” : 2878,                 “ramMB” : 1977         },         “indexCounters” : {                 “note” : “not supported on this platform”         },         “backgroundFlushing” : {                 “flushes” : 0,                 “total_ms” : 0,                 “average_ms” : 0,                 “last_ms” : 0,                 “last_finished” : ISODate(“1970-01-01T00:00:00Z”)         },         “cursors” : {                 “totalOpen” : 0,                 “clientCursors_size” : 0,                 “timedOut” : 0         },         “network” : {                 “bytesIn” : 220,                 “bytesOut” : 261,                 “numRequests” : 3         },         “opcounters” : {                 “insert” : 0,                 “query” : 1,                 “update” : 0,                 “delete” : 0,                 “getmore” : 0,                 “command” : 4         },         “asserts” : {                 “regular” : 0,                 “warning” : 0,                 “msg” : 0,                 “user” : 0,                 “rollovers” : 0         },         “writeBacksQueued” : false,         “ok” : 1

返回字段说明:

uptime: 服务器运行时间(秒)。

localTime: 服务器本地时间。

mem: 服务器内存隐身了多少数据,服务器进程的虚拟内存和常驻内存占用情况(单位:MB)。

connections: 当前连接数。

opcounters: 操作统计。

globalLock:表示全局写入锁占用的服务器时间(单位:微妙) ;

backgroundFlushing: 表示后台做了多少次fsync以及用了多少时间。

asserts:统计断言的次数。

2.mongostat.exe

bin目录下。

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏