[root@a1 bin]# ./mongod --dbpath=/usr/local/mongodb/data/ --logpath=/usr/local/m
ongodb/dblogs --auth --fork
> use admin;
switched to db admin
> useradd("root","123"});
> db.addUser("root","123456");
現在就需要退出,負責沒有操作數據庫的權限,如下
> show tables;
Fri May 17 23:35:40.235 JavaScript execution failed: error: {
"$err" : "not authorized for query on admin.system.namespaces",
"code" : 16550
} at src/mongo/shell/query.js:L128
[root@a1 bin]# ./mongo -uroot -p123456 localhost:27017/admin
在admin裏添加的用戶,是超級用戶,可以操作其他數據庫,其他數據庫也可以有自己的管理員,具體做法就是進去其他數據庫,添加用戶就行了,每次./mongo連接的時候,註明用戶名和所使用的數據庫
導出數據(如果沒有設置用戶權限,可以不用 -u -p 兩個參數)
[root@a1 bin]# ./mongoexport -u user -p 123 -d test -c c2 -o c1.out
connected to: 127.0.0.1
exported 10 records
-u 用戶名 必須是要導出數據庫的管理員
-p 密碼
-d 要導出的數據庫
-c 要導出的collection(集合)
-o 導出的文件名
如果要使用超級用戶進行導出,必須加上 --authenticationDatabase admin
[root@a1 bin]# ./mongoexport -u root -p 123456 --authenticationDatabase admin -
d test -c c2 -o c2.out
導入數據
[root@a1 bin]# ./mongoimport --host localhost --db test -c c3 -u user -p 123 <c2.out
備份數據庫
[root@a1 bin]# ./mongodump -u user -p 123 -d test -o /tmp/bk
則會被備份在/tmp/bk/下的test 文件夾下
[root@a1 bin]# ls /tmp/bk/test/
c1.bson c3.bson system.profile.metadata.json
c1.metadata.json c3.metadata.json system.users.bson
c2.bson system.indexes.bson system.users.metadata.json
c2.metadata.json system.profile.bson
恢復數據
[root@a1 bin]# ./mongorestore -u root -p 123456 --authenticationDatabase admin
-d restore /tmp/bk/test/