环境:CentOS 7
1.下载MongoDB,地址https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.9.tgz。
2.上传MongoDB.
3. 解压
tar -zxvf mongodb-linux-x86_64-3.4.9.tgz -C /opt/tools/
4.重命名
mv mongodb-linux-x86_64-3.4.9/ mongodb
5.进入mongodb目录,创建data,logs
mkdir data -----》存放数据
mkdir logs -----》存放日志
6.配置mongodb.conf,进入bin目录下
vi mongodb.conf
dbpath=/opt/tools/mongodb/data
logpath=/opt/tools/mongodb/logs/mongodb.log
port=27017
fork=true
nohttpinterface=true
7.启动MongoDB
cd bin
./mongod -f mongodb.conf
./mongo 进入MongoDB的管理台
默认情况下,连接地址是127.0.0.1:27017,连接的数据库是test数据库,我们也可以手动指定连接地址和连接的数据库:
mongo 127.0.0.1:27017/admin
此时连接成功之后,输入db命令,我们可以看到当前连接的数据库是admin
8.安全管理
8.1)MongoDB中的账号是在某一个库里边进行设置的,我们在哪一个库里边进行设置,就要在哪一个库里边进行验证。
8.2)创建用户时,我们需要指定用户名、用户密码和用户角色,用户角色表示了该用户的权限。
eg:给test数据库创建一个用户
use test --切换到test数据库
db.createUser({user:"root",pwd:"123456",roles:[{role:"readWrite",db:"test"}]})
user表示用户名,pwd表示密码,role表示角色,db表示这个用户应用在哪个数据库上。
用户的角色,有如下几种:
- Read:允许用户读取指定数据库
- readWrite:允许用户读写指定数据库
- dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
- userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
- clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限
- readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
- readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
- userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
- dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限
- root:只在admin数据库中可用。超级账号,超级权限
用户创建成功之后,我们关闭掉当前MongoDB服务实例,然后重新启动新的实例,启动方式如下:
mongod -f /opt/tools/mongodb/bin/mongodb.conf -auth
启动成功之后,我们需要先进入到admin数据库中,然后授权,操作如下:
use test
db.auth("root","123456")
auth方法执行结果返回1表示认证成功。