MongoDB基本管理命令 2
来源:互联网 发布:淘宝上学历认证代办 编辑:程序博客网 时间:2024/04/30 17:18
(四)安全管理
mongod --auth --dbpath /usr/mongo/data --logfile/var/mongo.log
使用--auth选项启动mongod进程即可启用认证模式。
或者,也可以修改/etc/mongodb.conf,设置auth=true,重启mongod进程。
或者,也可以修改/etc/mongodb.conf,设置auth=true,重启mongod进程。
2、添加用户
db.addUser("admin", ",�3_kj~00Opoo0+\/")
添加数据库用户,添加成功,则显示结果如下所示:
[plain] viewplaincopy
- {
-
"user" : "admin", -
"readOnly" : false, -
"pwd" : "995d2143e0bf79cba24b58b3 e41852cd" - }
db.auth("admin", ",�3_kj~00Opoo0+\/")
数据库安全认证。认证成功显示结果:
[plain] viewplaincopy
- {
-
"user" : "admin", -
"readOnly" : false, -
"pwd" : "995d2143e0bf79cba24b58b3 e41852cd" - }
如果是认证用户,执行某些命令,可以看到正确执行结果,如下所示:
否则,认证失败,则执行相关命令会提示错误:
[plain] viewplaincopy
- db.system.users.find()
- {
"_id" : ObjectId("4ef940a13c1fc4613425acc8 "), "user" : "admin", "readOnly" : false, "pwd" : "995d2143e0bf79cba24b58b3 e41852cd" }
[plain] viewplaincopy
- db.system.users.find()
- error:
{ -
"$err" : "unauthorized db:admin lock type:-1 client:127.0.0.1", "code" : 10057 - }
db.runCommand({fsync:1,lock:1})
说明:
说明:
该操作已经对数据库上锁,不允许执行写数据操作,一般在执行数据库备份时有用。执行命令,结果示例如下:
[plain] viewplaincopy
- {
-
"info" : "now locked against writes, use db.$cmd.sys.unlock.findOne() to unlock", -
"ok" : 1 - }
5、查看当前锁状态
db.currentOp()
说明:
查询结果如下所示:
其中,fsyncLock为1表示MongoDB的fsync进程(负责将写入改变同步到磁盘)不允许其他进程执行写数据操作
[plain] viewplaincopy
- {
-
"inprog" : [ ], -
"fsyncLock" : 1, -
"info" : "use db.$cmd.sys.unlock.findOne() to terminate the fsync write/snapshot lock" - }
6、解锁
use admin
db.$cmd.sys.unlock.findOne()
db.$cmd.sys.unlock.findOne()
说明:
执行解锁,结果如下所示:
可以执行命令查看锁状态:
db.currentOp()
状态信息如下:
说明当前没有锁,可以执行写数据操作。
[plain] viewplaincopy
- {
"ok" : 1, "info" : "unlock requested" }
db.currentOp()
状态信息如下:
[plain] viewplaincopy
- {
"inprog" : [ ] }
(五)数据备份、恢复与迁移管理
1、备份全部数据库
mkdir testbak
cd testbak
mongodump
cd testbak
mongodump
说明:默认备份目录及数据文件格式为./dump/[databasename]/[collectionname].bson
2、备份指定数据库
mongodump -d pagedb
2、备份指定数据库
mongodump -d pagedb
说明:备份数据库pagedb中的数据。
3、备份一个数据库中的某个集合
mongodump -d pagedb -c page
说明:备份数据库pagedb的page集合。
4、恢复全部数据库
cd testbak
mongorestore --drop
mongorestore --drop
说明:将备份的所有数据库恢复到数据库,--drop指定恢复数据之前删除原来数据库数据,否则会造成回复后的数据中数据重复。
5、恢复某个数据库的数据
cd testbak
mongorestore -d pagedb --drop
说明:将备份的pagedb的数据恢复到数据库。
mongorestore -d pagedb --drop
说明:将备份的pagedb的数据恢复到数据库。
6、恢复某个数据库的某个集合的数据
cd testbak
mongorestore -d pagedb -c page --drop
说明:将备份的pagedb的的page集合的数据恢复到数据库。
mongorestore -d pagedb -c page --drop
说明:将备份的pagedb的的page集合的数据恢复到数据库。
7、向MongoDB导入数据
mongoimport -d pagedb -c page --type csv --headerline --drop <csvORtsvFile.csv
说明:将文件csvORtsvFile.csv的数据导入到pagedb数据库的page集合中,使用cvs或tsv文件的列名作为集合的列名。需要注意的是,使用--headerline选项时,只支持csv和tsv文件。
--type支持的类型有三个:csv、tsv、json
其他各个选项的使用,可以查看帮助:
--type支持的类型有三个:csv、tsv、json
其他各个选项的使用,可以查看帮助:
[plain] viewplaincopy
- mongoimport
--help - options:
-
--help produce help message -
-v [ --verbose ] be more verbose (include multiple times for more -
verbosity e.g. -vvvvv) -
-h [ --host ] arg mongo host to connect to ( /s1,s2 for sets) -
--port arg server port. Can also use --host hostname:port -
--ipv6 enable IPv6 support (disabled by default) -
-u [ --username ] arg username -
-p [ --password ] arg password -
--dbpath arg directly access mongod database files in the given -
path, instead of connecting to a mongod server - -
needs to lock the data directory, so cannot be used -
if a mongod is currently accessing the same path -
--directoryperdb if dbpath specified, each db is in a separate -
directory -
-d [ --db ] arg database to use -
-c [ --collection ] arg collection to use (some commands) -
-f [ --fields ] arg comma separated list of field names e.g. -f name,age -
--fieldFile arg file with fields names - 1 per line -
--ignoreBlanks if given, empty fields in csv and tsv will be ignored -
--type arg type of file to import. default: json (json,csv,tsv) -
--file arg file to import from; if not specified stdin is used -
--drop drop collection first -
--headerline CSV,TSV only - use first line as headers -
--upsert insert or update objects that already exist -
--upsertFields arg comma-separated fields for the query part of the -
upsert. You should make sure this is indexed -
--stopOnError stop importing at first error rather than continuing -
--jsonArray load a json array, not one item per line. Currently -
limited to 4MB.
mongoexport -d pagedb -c page -q {} -f_id,title,url,spiderName,pubDate --csv > pages.csv
说明:将pagedb数据库中page集合的数据导出到pages.csv文件,其中各选项含义:
-f 指定cvs列名为_id,title,url,spiderName,pubDate
-q 指定查询条件
其他各个选项的使用,可以查看帮助:
说明:将pagedb数据库中page集合的数据导出到pages.csv文件,其中各选项含义:
-f 指定cvs列名为_id,title,url,spiderName,pubDate
-q 指定查询条件
其他各个选项的使用,可以查看帮助:
[plain] viewplaincopy
- mongoexport
--help - options:
-
--help produce help message -
-v [ --verbose ] be more verbose (include multiple times for more verbosity e.g. -vvvvv) -
-h [ --host ] arg mongo host to connect to ( /s1,s2 for sets) -
--port arg server port. Can also use --host hostname:port -
--ipv6 enable IPv6 support (disabled by default) -
-u [ --username ] arg username -
-p [ --password ] arg password -
--dbpath arg directly access mongod database files in the given -
path, instead of connecting to a mongod server - -
needs to lock the data directory, so cannot be used -
if a mongod is currently accessing the same path -
--directoryperdb if dbpath specified, each db is in a separate directory -
-d [ --db ] arg database to use -
-c [ --collection ] arg collection to use (some commands) -
-f [ --fields ] arg comma separated list of field names e.g. -f name,age -
--fieldFile arg file with fields names - 1 per line -
-q [ --query ] arg query filter, as a JSON string -
--csv export to csv instead of json -
-o [ --out ] arg output file; if not specified, stdout is used -
--jsonArray output to a json array rather than one object per line
注意:
如果上面的选项-q指定一个查询条件,需要使用单引号括起来,如下所示:
[plain] viewplaincopy
- mongoexport
-d page -c Article -q '{"spiderName": "mafengwoSpider"}' -f _id,title,content,images,publishDate,spiderName,url --jsonArray > mafengwoArticle.txt
[plain] viewplaincopy
- ERROR:
too many positional options
(六)远程连接管理
[plain] viewplaincopy
- mongo
-u admin -p admin 192.168.0.197:27017/pagedb
[plain] viewplaincopy
- mongo
--help - MongoDB
shell version: 1.8.3 - usage:
mongo [options] [db address] [file names (ending in .js)] - db
address can be: -
foo foo database on local machine -
192.169.0.5/foo foo database on 192.168.0.5 machine -
192.169.0.5:9999/foo foo database on 192.168.0.5 machine on port 9999 - options:
-
--shell run the shell after executing files -
--nodb don't connect to mongod on startup - no 'db address' -
arg expected -
--quiet be less chatty -
--port arg port to connect to -
--host arg server to connect to -
--eval arg evaluate javascript -
-u [ --username ] arg username for authentication -
-p [ --password ] arg password for authentication -
-h [ --help ] show this usage information -
--version show version information -
--verbose increase verbosity -
--ipv6 enable IPv6 support (disabled by default)
2、基于MongoDB支持的javascript实现远程连接
当你已经连接到一个远程的MongoDB数据库服务器(例如,通过mongo连接到192.168.0.184),现在想要在这个会话中连接另一个远程的数据库服务器(192.168.0.197),可以执行如下命令:
[plain] viewplaincopy
- >
var x = new Mongo('192.168.0.197:27017') - >
var ydb = x.getDB('pagedb'); - >
use ydb - switched
to db ydb - >
db - ydb
- >
ydb.page.findOne() - {
-
"_id" : ObjectId("4eded6a5bf3bfa0014000003 "), -
"content" : "巴黎是浪漫的城市,可是...", -
"pubdate" : "2006-03-19", -
"title" : "巴黎:从布鲁塞尔赶到巴黎", -
"url" : "http://france.bytravel.cn/Scenery/528/cblsegdbl.html" - }
如果启用了安全认证模式,可以在获取数据库连接实例时,指定认证账号,例如:
[plain] viewplaincopy
- >
var x = new Mongo('192.168.0.197:27017') - >
var ydb = x.getDB('pagedb', 'shirdrn', '(jkfFS$343$_\=\,.F@3'); - >
use ydb - switched
to db ydb
- MongoDB基本管理命令 2
- MongoDB基本管理命令
- MongoDB基本管理命令
- MongoDB基本管理命令
- MongoDB基本管理命令
- MongoDB基本管理命令 .
- MongoDB基本管理命令
- MongoDB基本管理命令
- MongoDB基本管理命令
- MongoDB基本管理命令
- MongoDB基本管理命令
- MongoDB基本管理命令
- MongoDB基本管理命令
- MongoDB基本管理命令
- MongoDB基本管理命令
- MongoDB基本管理命令
- MongoDB基本管理命令
- MongoDB基本管理命令
- 如何drop有default constrain…
- 英语词组日常积累
- 我的博客今天0岁3天了,我领取了新…
- html、javascript、backbone …
- MongoDB基本管理命令 1
- MongoDB基本管理命令 2
- MongoDB GUI客户端工具大全
- 原汁原味:外国人常挂在嘴边的英语…
- 第一次安卓环境搭建
- android有关bluetooth常用api简介
- Adroid项目目录结构
- 2013年01月22日
- android传感器的学习
- final的作用