一、MongoDB的安装
1.在MongoDB的官网下载对应的安装文件()
2.解压安装文件
#解压tgz文件
tar -zxvf mongodb-linux-x86_64-ubuntu1604-3.6.2.tgz
#将解压好的文件放到指定目录下
mv mongodb-linux-x86_64-ubuntu1604-3.6.2/ /usr/local/mongodb
#配置环境变量
export PATH=<mongodb-install-directory>/bin:$PATH
#<mongodb-install-directory> 为你 MongoDB 的安装路径。
#例如:
export PATH=/usr/local/mongodb/bin:$PATH
3.创建配置文件(用来启动MongoDB的服务时,一些基本参数)
文件名称:mongod.cnf
#配置文件的内容
#数据库文件的存放位置
dbpath=/data/mongo/
#日志文件的存放位置
logpath=/data/mongo/mongo.log
#日志的写入方式,此处为追加
logappend=true
#是否后台运行,设置为true 启动 进程在后台运行的守护进程模式。默认false
fork=true
port=27017
#绑定地址。默认127.0.0.1,只能通过本地连接,此时为任意IP都可以访问
bind_ip = 0.0.0.0
4.启动服务
再启动服务之前一定要把之前的mongodb服务关掉
关闭服务
#进入admin数据库
use admin
#关闭服务
db.shutdownServer()
启动服务
#启动服务
mongod –f mongod.cnf
#如果上面的启动报错,
#错误信息The program 'mongod' is currently not installed. You can install it by typing:
apt install mongodb-server,则使用下面的方式去启动,
#原因是没有配置环境变量
./mongod -f mongod.cnf
5.测试服务是否正常
#输入mongo进入MongoDB的控制台
mongo
#然后输入db.version(),如果能显示版本号,则表示正常启动
db.version()
6.配置环境变量
7.安全管理
参考网址:https://www.cnblogs.com/shiyiwen/p/5552750.html
Built-In Roles(内置角色):
1. 数据库用户角色:read、readWrite;
2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 备份恢复角色:backup、restore;
5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超级用户角色:root
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 内部角色:__system
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
1.MongoDB中的账号是在某一个库里边进行设置的,我们在哪一个库里边进行设置,就要在哪一个库里边进行验证。
2.创建用户时,我们需要指定用户名、用户密码和用户角色,用户角色表示了该用户的权限。
例:
use admin
db.createUser({user:"root",pwd:"123",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
用户创建成功之后,需要关闭当前实例,重新启动新的实例。然后进入要设置的数据库,进行授权处理
#此处的admin需要换成对应的数据库
use admin
db.auth("root","123")