1.下载MongoBD安装包
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-4.2.8.tgz
2.解压安装包
tar -zxvf mongodb-linux-x86_64-ubuntu1604-4.2.8.tgz
mv mongodb-src-r4.2.8 /usr/local/mongodb
3.MongoDB 的可执行文件位于 bin 目录下,所以可以将其添加到 PATH 路径中
export PATH=<mongodb-install-directory>/bin:$PATH
4.创建数据库目录
默认情况下 MongoDB 启动后会初始化以下两个目录:
- 数据存储目录:/var/lib/mongodb
- 日志文件目录:/var/log/mongodb
创建这两个目录并设置当前用户有读写权限
sudo mkdir -p /var/lib/mongo
sudo mkdir -p /var/log/mongodb
sudo chown `whoami` /var/lib/mongo # 设置权限
sudo chown `whoami` /var/log/mongodb # 设置权限
5.启动MongoDB服务
mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork
6.停止MongoDB服务
mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --shutdown
7.设置配置文件方式启动
cd /usr/local/mongodb
vim mongodb.conf
dbpath = /var/lib/mongo
logpath = /var/log/mongodb/mongod.log
port = 27017
bind_ip = 127.0.0.1
fork = true
logappend=true
journal = false
storageEngine = mmapv1
mongod --config /usr/local/mongodb/mongodb.conf
利用mongo命令连接mongoDB服务器端
cd /usr/local/mongodb/bin
./mongo
8.添加管理用户
利用mongo命令连接mongoDB服务器端
> use admin
switched to db admin
> db.createUser( {user: "pfnieadmin",pwd: "123456",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]});
## 如果权限不够,权限都加上
> db.createUser({user: "pfnieadmin", pwd: "123456", roles: [{ role: "userAdminAnyDatabase", db: "admin" },{ role: "readWriteAnyDatabase", db: "admin" },{ role: "dbAdminAnyDatabase", db: "admin" },{ role: "clusterAdmin", db: "admin" }]})
注:添加完用户后可以使用show users或db.system.users.find()查看已有用户.
进入mongo shell,使用admin数据库并进行验证,如果不验证,是做不了任何操作的
使用db.shutdownServer()关闭数据库,然后添加auth=true 在启动
> use admin
> db.auth("pfnieadmin","123456") #认证,返回1表示成功
MongoDB role 类型
- root:只在admin数据库中可用。超级账号,超级权限
- 数据库用户角色(Database User Roles)
- read:授予Use只读数据的权限
- readWrite:授予User读写数据的权限
- 数据库管理角色(Database Administration Roles):
- dbAdmin:在当前dB中执行管理操作
- dbOwner:在当前DB中执行任意操作
- userAdmin:在当前DB中管理User
- 备份和还原角色(Backup and Restoration Roles):
- backup
- restore
- 跨库角色(All-Database Roles):
- readAnyDatabase:授予在所有数据库上读取数据的权限
- readWriteAnyDatabase:授予在所有数据库上读写数据的权限
- userAdminAnyDatabase:授予在所有数据库上管理User的权限
- dbAdminAnyDatabase:授予管理所有数据库的权限
- 集群管理角色(Cluster Administration Roles):
- clusterAdmin:授予管理集群的最高权限
- clusterManager:授予管理和监控集群的权限,A user with this role can access the config and local databases, which are used in sharding and replication, respectively.
- clusterMonitor:授予监控集群的权限,对监控工具具有readonly的权限
- hostManager:管理Server
添加数据库用户
> use flowpp
switched to db flowpp
> db.createUser({user: "flowpp", pwd: "flopww", roles: [{ role: "dbOwner", db: "flowpp" }]}) # 创建用户flowpp,设置密码flopww,设置角色dbOwner
查看系统用户
> use admin
switched to db admin
> db.system.users.find() # 显示当前系统用户
删除用户
1.切换admin ,删除用户flowpp ,删除失败
> use admin
switched to db admin
> db.dropUser("flowpp")
false
2.切换flowpp ,删除用户flowpp,删除成功
> use flowpp
switched to db flowpp
> db.dropUser("flowpp")
true