一、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.启动服务。4.启动服务。4.启动服务
4.启动服务。再启动服务之前一定要把之前的mongodb服务关掉

关闭服务

#进入admin数据库
use admin
#关闭服务
db.shutdownServer()

4.启动服务。启动服务

#启动服务

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.安全管理

参考网址:

 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")

相关文章