一、mongodb部署
下载:先下到window系统再用xshell传到虚拟机上喽
http://www.mongodb.org/downloads
安装:用xshell上传到虚拟机root用户的家目录下
# tar -xvfmongodb-linux-x86_64-rhel70-3.4.9.gz//解压
# mv mongodb-linux-x86_64-rhel70-3.4.9mongo///将解压后的文件改个好记的名字
//////或者做软连接
# ln ‐s mongodb‐linux‐x86_64‐rhel70-3.4.0/ mongo
配置:
# vim /etc/bashrc///在末尾添加
exportPATH=$PATH:/root/mongo/bin
# source/etc/bashrc
#cd mongo
mongo]# which mongo
/root/mongo/bin/mongo
# mkdir/mongodb/data/db -p ///创建数据存放位置
# mkdir/mongodb/data/log -p
配置文件启动:
[root@c7-o12c-5mongo]# cat /mongodb/mongodb.cnf
dbpath=/mongodb/data/db
logpath=/mongodb/data/log/mongodb.log
logappend=true
port=27017
[root@7 c7-o12c-5mongo]# mongod -f /mongodb/mongodb.cnf &//启动
[root@c7-o12c-5mongo]# ps -ef | grep mongo
root 5764 2483 1 09:46 pts/0 00:00:23 mongod -f /mongodb/mongodb.cnf--rest
root 6354 2483 0 10:13 pts/0 00:00:00 grep --color=auto mongo
[root@c7-o12c-5mongo]# mongo
数据库的简单操作,
>db ////当前库名
>show dbs ////所有有数据的库
>use admin /////切换到admin库下
> db.rundb.insert({x:10})///在当前库下建一个集合rundb并且插入数据。
> show tables ///当前库下的所有集合
> db.rundb.find() ///展开rundb这个集合
> use he /////切换到he库下,没有就创建一个空库。
> db.createCollection("tbadmin"); /////在当前库下创建一个tbadmin空表
> show tables /////查看当前目录下的表,空表也显示
> show collections ////和上一个命令一样功能。
> db.tbadmin.renameCollection("admintb") /////将tbadmin改名为admintb
>db.createUser({user:"yhtest",pwd:"yhtest",roles:[{role:"userAdmin",db:"test"}]}) ///创建用户,密码及其角色
> db.test.insert({"name":"测试"}) /////在test表中插入数据;
> db.cooperation.drop() /////删除表
导出mongodb数据库
语句:mongodump -h IP --port端口 -u用户名 -p密码 -d数据库 -o文件存在路径
如果没有用户谁,可以去掉-u和-p。
如果导出本机的数据库,可以去掉-h。
如果是默认端口,可以去掉--port。
如果想导出所有数据库,可以去掉-d。
实例:
mongodump -h IP --port 27017 -u info -ptest-d test-o D:/mongodb/backups/ 备注:本地不用加:-h IP
mongodump -h IP -d test-oD:/mongodb/backups/ 导出指定数据库
导入mongodb数据库
语句:mongorestore -h IP --port端口 -u用户名 -p密码 -d数据库 --drop文件存在路径
实例:
mongorestore -h IP --port 27017-u test-p test-d test--drop D:/mongodb/backups/2016-7-6/test备注:本地不用加:-h IP
> show tables;
rundb
test
> db.test.find()
{ "_id" :ObjectId("59c9bb1f3c49ff4e1286f1c4"), "name" : "测试" }
{ "_id" :ObjectId("59c9c0ea3c49ff4e1286f1c5"), "name" :"ceshi" }
>db.test.insert({"address":"shanghai","address":"nanjing","age":12})
WriteResult({ "nInserted" : 1 })
> db.test.find()
{ "_id" :ObjectId("59c9bb1f3c49ff4e1286f1c4"), "name" : "测试" }
{ "_id" :ObjectId("59c9c0ea3c49ff4e1286f1c5"), "name" :"ceshi" }
{ "_id" :ObjectId("59c9c7c4e23cd1e6e1a1e717"), "address" :"nanjing", "age" : 12 }
>db.test.insert({"address":"shanghai","age":11})
WriteResult({ "nInserted" : 1 })
> db.test.find()
{ "_id" :ObjectId("59c9bb1f3c49ff4e1286f1c4"), "name" : "测试" }
{ "_id" : ObjectId("59c9c0ea3c49ff4e1286f1c5"),"name" : "ceshi" }
{ "_id" :ObjectId("59c9c7c4e23cd1e6e1a1e717"), "address" :"nanjing", "age" : 12 }
{ "_id" :ObjectId("59c9c833e23cd1e6e1a1e718"), "address" :"shanghai", "age" : 11 }
> db.test.distinct("name") ///只列出name列
[ "测试","ceshi" ]
> db.test.distinct("address")
[ "nanjing", "shanghai"]
>
http://www.cnblogs.com/libingql/archive/2011/06/09/2076440.html/////操作参考
mongo数据库备份
# mkdir -p /home/mongodump /////先创建一个备份目录
# mongodump -h 192.168.7.109:27017 -d test -o/home/mongodump ///将主机27017端口里的库实例test备份到指定目录。
# ls /home/mongodump/test /////可以看到库里面的集合
> db
test
> db.dropDatabase() /////删除当前库
> show dbs;
admin 0.000GB
local 0.000GB
# mongorestore -h 192.168.7.109:27017 -d test --dir/home/mongodump/test/ //////数据库还原
# mongo
> show dbs
admin 0.000GB
local 0.000GB
test 0.000GB ////成功还原
>
参考http://www.cnblogs.com/qingtianyu2015/p/5968400.html
认证和授权:
1.启动mongodb时准备
# mongod dbpath--……………………加上‐‐auth
或者
修改/etc/mongodb.conf配置文件
加上auth = True
2.连接实例
#mongo –port 27017
3.创建超级账户
> use admin
> db.createUser({user: "户名",pwd: "密码",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]} )
userAdminAnyDatabase--à只针对用户管理,对其他没有权限
4.带访问控制重启实例
# mongoddbpath--……………………加上‐‐auth
或者:
#mongod -f /mongodb/mongodb.cnf &
5.连接并认证超级账户
连接前认证:#mongo ‐‐port 27017 ‐u "超级用户名" ‐p "密码" ‐‐authenticationDatabase "admin"
mongo--port 27017 -u "myUserAdmin" -p "admin" --authenticationDatabase"admin"
连接后认证:#mongo
>useadmin
>db.auth(“超级用户名”,”密码”)
>show users =====///列出当前库的所有用户
>db.system.users.find()=====///列出系统中的所有用户
6.根据要求创建用户:
为数据库he创建一个用户heuser,并对其库有读写权,对库ya有读的权限。
>use he
> db.createUser({user:"heuser",pwd:"123456",roles:[{role:"readWrite",db:"he"},{role:"read",db:"ya"}]})
7.用heuser连接认证
连接前:#mongo –port27017 -u “heuser” -p “123456” –authenticationDatabase “test”
连接后:#mongo –port 27017
>usehe
>db.auth("heuser","123456")
>db.hedb.insert({“name”:”hehe”})////ok
>useya
>db.yadb.insert({“name”:”yaya”})///no