vi /etc/yum.repos.d/mongodb-org-4.0.repo
mongodb
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
复制代码
最稳定版本 sudo yum install -y mongodb-org
shell
指定版本 sudo yum install -y mongodb-org-4.0.11 mongodb-org-server-4.0.11 mongodb-org-shell-4.0.11 mongodb-org-mongos-4.0.11 mongodb-org-tools-4.0.11
数据库
不升级版本 exclude = mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools
bash
rpm -qa |grep mongodb
rpm -ql mongodb-org-server
tcp
启动服务 systemctl start mongod.service
函数
开启端口 netstat -natp | grep 27017
测试
查看进程 ps -aux | grep mongod
url
验证 mongo
spa
// 一、开启MongoDB
sudo service mongod start 或者 systemctl start mongod.service # 开启MongoDB
sudo chkconfig mongod on # 加入开机启动
sudo service mongod restart # 重启MongoDB
// 二、关闭MongoDB
sudo service mongod stop # 关闭防火墙
// 三、卸载MongoDB
sudo yum erase $(rpm -qa | grep mongodb-org) # 卸载MongoDB
sudo rm -r /var/log/mongodb # 删除日志文件
sudo rm -r /var/lib/mongo # 删除数据文件
复制代码
vi /etc/mongod.conf
rest
# network interfaces
net:
port: 27017
# 127.0.0.1仅能主机链接,需改为0.0.0.0
bindIp: 0.0.0.0 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
复制代码
sudo service mongod restart
systemctl status firewalld # 查看防火墙状态
firewall-cmd --zone=public --add-port=27017/tcp --permanent # mongodb默认端口号
firewall-cmd --reload # 从新加载防火墙
firewall-cmd --zone=public --query-port=27017/tcp # 查看端口号是否开放成功,输出yes开放成功,no则失败
复制代码
mongo your server address:27017
use admin
db.createUser({ user: "root", pwd: "123456", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
db.auto('root','123456')
返回1
则正确
sudo vi /etc/mongod.conf
修改 #security:
为
security:
authorization: enabled
复制代码
sudo service mongod restart
mongo
进入数据库,use admin
切换到admin数据库,运行show users
会报错,由于你没有验证身份,须要先验证db.auth('root','123456')
,再次运行show users
则显示应有信息。
首先须要use admin
切换到admin验证身份db.auth('root','123456')
,再切换到test数据库use test
,即在对应数据库建立用户权限才能成功。在此建立一个对test数据库读写建立删除权限,其余数据库只读权限的用户。 db.createUser({user:'test',pwd:'test',roles:[{role:'readWrite',db:'test'},{role:'dbAdmin',db:'test'},'read']})
exit
退出数据再从新进入mongo
,use test
进入test数据库,show collections
尝试查询集合,报错。db.auth('test','test')
验证登陆,再次查询集合show collections
,不报错(无collection时会不显示任何信息)。
mongo your server address:27017/test
,测试权限,方法同第8步。
分类 | role(角色) | 简要说明 |
---|---|---|
数据库用户角色(DB User Roles) | read readWrite |
为某个数据库建立一个用户, 分配该数据库的读写权力 |
数据库管理员角色(DB Admin Roles) | dbAdmin dbOwner userAdmin |
拥有建立数据库, 和建立用户的权力 |
集群管理角色(Culster Administration Roles) | clusterAdmin clusterManager clusterMonitor hostManager |
管理员组, 针对整个系统进行管理 |
备份还原角色(Backup and Restoration Roles) | backup restore |
备份数据库, 还原数据库 |
全部数据库角色(All-Database Roles) | readAnyDatabase readWriteAnyDatabase userAdminAnyDatabase dbAdminAnyDatabase |
拥有对admin操做的权限 |
Superuser Roles(超级管理员) | root |
dbOwner userAdmin userAdminAnyDatabase这几个角色角色提供了任何数据任何用户的任何权限的能力,拥有这个角色的用户能够在任何数据库上定义它们本身的权限 |