MongoDB linux下安裝與設置密碼

建立.repo文件,生成mongodb的源

vi /etc/yum.repos.d/mongodb-org-4.0.repomongodb

添加配置信息

[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-orgshell

  • 指定版本 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-toolsbash

驗證安裝

rpm -qa |grep mongodb rpm -ql mongodb-org-servertcp

啓動

啓動服務 systemctl start mongod.service函數

開啓端口 netstat -natp | grep 27017測試

查看進程 ps -aux | grep mongodurl

驗證 mongospa

經常使用命令

// 一、開啓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    # 刪除數據文件
複製代碼

遠程鏈接

1. 修改配置

vi /etc/mongod.confrest

# 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.
複製代碼

2. 重啓

sudo service mongod restart

3. 開放端口

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則失敗
複製代碼

4. 遠程鏈接

mongo your server address:27017

設置密碼

1(建立)進入admin數據庫

use admin

2. 建立管理員帳號

db.createUser({ user: "root", pwd: "123456", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })

3. 測試

db.auto('root','123456') 返回1則正確

4. 開啓驗證

sudo vi /etc/mongod.conf 修改 #security:

security:
  authorization: enabled
複製代碼

5. 重啓服務

sudo service mongod restart

6. 測試admin數據庫

mongo進入數據庫,use admin切換到admin數據庫,運行show users會報錯,由於你沒有驗證身份,須要先驗證db.auth('root','123456'),再次運行show users則顯示應有信息。

7. 建立其餘數據庫密碼

首先須要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']})

8. 測試其餘數據庫

exit退出數據再從新進入mongo,use test進入test數據庫,show collections嘗試查詢集合,報錯。db.auth('test','test')驗證登陸,再次查詢集合show collections,不報錯(無collection時會不顯示任何信息)。

9. 測試遠程鏈接

mongo your server address:27017/test,測試權限,方法同第8步。

10. 完成~~

角色表

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

角色描述

  • Read:容許用戶讀取指定數據庫
  • readWrite:容許用戶讀寫指定數據庫
  • dbAdmin:容許用戶在指定數據庫中執行管理函數,如索引建立、刪除,查看統計或訪問system.profile
  • userAdmin:容許用戶向system.users集合寫入,能夠在指定數據庫裏建立、刪除和管理用戶
  • clusterAdmin:只在admin數據庫中可用,賦予用戶全部分片和複製集相關函數的管理權限。
  • readAnyDatabase:只在admin數據庫中可用,賦予用戶全部數據庫的讀權限
  • readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶全部數據庫的讀寫權限
  • userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶全部數據庫的userAdmin權限
  • dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶全部數據庫的dbAdmin權限。
  • root:只在admin數據庫中可用。超級帳號,超級權限

角色操做

User Management Methods — MongoDB Manual

相關文章
相關標籤/搜索