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這幾個角色角色提供了任何數據任何用戶的任何權限的能力,擁有這個角色的用戶能夠在任何數據庫上定義它們本身的權限 |