码迷,mamicode.com
首页 > 数据库 > 详细

mongodb安装配置以及其他基础操作

时间:2018-03-16 12:11:06      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:mongodb

最近公司有个项目要用mongodb,之前没搞过,今天临时磨刀上阵,花了半天时间研究,中间有遇到几个坑写出来分享给大家。


tar -zxf mongodb-linux-x86_64-v3.6.3.tgz

cp -pr mongodb-linux-x86_64-v3.6.3 /usr/local/mongodb

mkdir -p /data/mongodb/logs

touch /data/mongodb/logs/mongodb.log


vi /data/mongodb/bin/mongodb.conf

dbpath=/data/mongodb/data

logpath=/data/mongodb/logs/mongodb.log

port=27017

fork=true

auth=true

logappend=true

nojournal=true

nohttpinterface=true


/usr/local/mongodb/bin/mongod --bind_ip 172.31.31.63 -f /usr/local/mongodb/conf/mongodb.conf

echo "export PATH=/usr/local/mongodb/bin:$PATH" >> /etc/profile

source /etc/profile


连接到mongodb:

mongo 172.31.31.63:27017


show dbs         //查看数据库

use admin        //切换到admin库,若admin库不存在则会创建admin

show users        //查看用户

db.createUser({user:"admin",pwd:"123456",roles:["root"]});    //创建超级管理员用户

db.createUser({user:"USRADM",pwd:"123456",roles:[ "userAdminAnyDatabase"]});  //创建用户管理员账户

db.changeUserPassword('admin','147258');//修改密码

db.dropUser('admin')    //删除用户

db.auth("admin","147258");    //admin登录认证

db.auth("USRADM","123456");     //USRADM登录认证


#############################################################################################

内建角色

1、数据库用户角色

read:允许用户读取指定数据库

readWrite:允许用户读写指定数据库


2、数据库管理员角色

dbAdmin:允许用户进行索引创建、删除,查看统计或访问system.profile,但没有角色和用户管理的权限

userAdmin:提供了在当前数据库中创建和修改角色和用户的能力

dbOwner: 提供对数据库执行任何管理操作的能力。这个角色组合了readWrite、dbAdmin和userAdmin角色授予的特权


3、集群管理角色

clusterAdmin : 提供最强大的集群管理访问。组合clusterManager、clusterMonitor和hostManager角色的能力。还提供了dropDatabase操作

clusterManager : 在集群上提供管理和监视操作。可以访问配置和本地数据库,这些数据库分别用于分片和复制

clusterMonitor : 提供对监控工具的只读访问,例如MongoDB云管理器和Ops管理器监控代理

hostManager : 提供监视和管理服务器的能力。


4、备份恢复角色

backup : 提供备份数据所需的能力,使用MongoDB云管理器备份代理、Ops管理器备份代理或使用mongodump

restore : 提供使用mongorestore恢复数据所需的能力


5、所有数据库角色

readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限 

readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限 

userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 

dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限


6、超级用户角色

root:提供对readWriteAnyDatabase、dbAdminAnyDatabase、userAdminAnyDatabase、clusterAdmin、restore和backup的所有资源的访问


7、内部角色

__system : 提供对数据库中任何对象的任何操作的特权

#############################################################################################


//创建用户BackupUser,并赋予备份恢复角色

db.createUser({user: "BackupUser",pwd: "123456",roles: [ 

{ role: 'backup', db: 'admin' },

{ role: 'restore', db: 'admin' }

]}); 


use students    //创建数据库

db.createUser({user: "user1",pwd: "user123456",roles: [ { role: "readWrite", db: "students" } ]});  //创建students库读写权限用户


db.auth("user1","user123456");    

db.clas.insert({"name":"wang"});    //向clas集合(表)插入3条数据

db.clas.insert({"name":"zhang"});

db.clas.insert({"name":"li"});

db.clas.remove({});    //删除clas集合里面所有数据记录

db.clas.find();            //查询clas集合里面所有数据记录

db.clas.drop();           //删除clas集合(表)

show collections;      //查看集合(表)

db.dropDatabase();  //删除数据库


导出students库的数据:

mongodump -h 172.31.31.63:27017 --authenticationDatabase admin -d students -u BackupUser -p -o /root/test/

-h 主机IP:端口

-d  要备份的库

-u  具有backup角色的用户

-p  备份用户的密码

-o  备份目录路径

--authenticationDatabase 备份用户BackupUser所属的数据库



导入students库的数据:

mongorestore -h 172.31.31.63:27017 --authenticationDatabase admin -d students -u BackupUser -p --directoryperdb /root/test/students

-h  主机IP:端口

-d  恢复的目标库

-u  具有restore角色的用户

-p  恢复用户的密码

--directoryperdb  恢复目录路径

--authenticationDatabase 恢复用户BackupUser所属的数据库


需要注意的坑:

1.认证问题,比如上面我有一个admin用户,只有use admin切换到admin库下面才能认证成功。

2.比如我上面已经创建了一个USRADM用户并赋予了相应的角色,当前这个角色它具有赋予用户所有数据库的userAdmin权限。现在我想为students库创建一个用户且分配置userAdmin角色。此时若我在admin库下面执行则会失败,必须切换到students库下面操作才能成功。

3.备份恢复角色的用户只能在admin库下创建,创建完后可以执行备份恢复其他所有库。


!!!切记执行任何库的操作时都必须先切换到对应的库下面


mongodb安装配置以及其他基础操作

标签:mongodb

原文地址:http://blog.51cto.com/gyj110/2087501

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!