1,直接下载对应版本mongodb:wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.6.4.tgz
2,解压:tar -zxvf mongodb-linux-x86_64-rhel62-3.6.4.tgz
3,mongodb直接解压可用,不需要编译安装,但是需要自己创建db目录:mkdir -p /data/db
4,进入mongodb目录,可启动mongodb:
cd /opt/mongodb/bin
./mongod
5,mongodb默认无密码链接,不安全,创建用户和密码
mongodb没有创建数据库和数据表的命令,直接插入数据,默认创建
.
./mongo
创建管理员用户和密码
use admin
db.createUser({user:"admin",pwd:"password",roles:["root"]})
认证登录
db.auth("admin", "password")
6,MongoDB role 类型
数据库用户角色(Database User Roles)
read:授予User只读数据的权限
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
7,添加数据库用户
use databasename
db.createUser({user: "users", pwd: "pwd", roles: [{ role: "dbOwner", db: "databasename" }]})
8,查看系统用户
use admin
db.system.users.find()
9,删除用户( 删除用户的时候需要切换到用户管理的数据库才可以删除)
# 切换到admin,删除users,会删除失败
use admin
db.dropUser("users") # 失败
# 必须切换到databasename
use databasename
db.dropUser("users")
10,启动mongodb
/usr/local/mongodb/bin/mongod --fork(以守护进程的方式运行MongoDB) --dbpath=/usr/local/mongodb/data/ --logpath=/usr/local/mongodb/logs --logappend(使用追加的方式写日志) --auth(启用验证)
11,几个注意事项:
(1),正确关闭mongodb的方式,最好不要kill -9 pid(因为mongodb常驻内存,如果没有开启日志--journal,可能造成数据丢失)
使用下面命令关闭:
use admin
db.shutdownServer() # kill pid