本安裝教程系統版本為Linux Centos 7,使用Yum源安裝MongoDB
Yum源
使用 概括幾個常用的:
// 1 安裝
yum install package // 安裝指定的安裝包package
// 2 更新和升級
yum update // 全部更新
yum update package // 更新指定程式包package
yum check-update // 檢查可更新的程式
yum upgrade package // 升級指定程式包package
// 3 查詢和顯示
yum info // 列出所有可以安裝或更新的包的資訊
yum info package //顯示安裝包資訊package
yum list // 顯示所有已經安裝和可以安裝的程式包
yum list package // 顯示指定程式包安裝情況package
yum search package // 搜尋匹配特定字元的package的詳細資訊
// 4 刪除程式
yum remove | erase package // 刪除程式包package
yum deplist package // 檢視程式package依賴情況
// 5 清除快取
yum clean packages // 清除快取目錄下的軟體包
yum clean headers // 清除快取目錄下的 headers
yum clean oldheaders // 清除快取目錄下舊的 headers
yum clean, yum clean all // (= yum clean packages; yum clean oldheaders) 清除快取目錄下的軟體包及舊的headers
複製程式碼
安裝Mongodb
配置系統yum源
1. 建立.repo檔案,生成mongodb的源
vi /etc/yum.repos.d/mongodb-org-4.0.repo
複製程式碼
2. 新增以下配置資訊:
[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
複製程式碼
詳解:
name # 名稱
baseurl # 獲得下載的路徑
gpkcheck=1 # 表示對從這個源下載的rpm包進行校驗;
enable=1 # 表示啟用這個源。
gpgkey # gpg驗證
複製程式碼
3. 儲存退出
wq # 退出儲存
複製程式碼
使用yum安裝MongoDB
1. 安裝MongoDB
sudo yum install -y mongodb-org
複製程式碼
2. 驗證安裝結果
rpm -qa |grep mongodb
複製程式碼
rpm -ql mongodb-org-server
複製程式碼
3. 啟動MongoDB
啟動MongoDB服務
systemctl start mongod.service
複製程式碼
MongoDB預設埠是27017,檢視是否開啟
netstat -natp | grep 27017
複製程式碼
檢查資料庫是否安裝成功
ps -aux | grep mongod # 檢視資料庫的程式是否存在
複製程式碼
4. 驗證服務開啟
mongo
複製程式碼
常用命令清單
// 1、開啟MongoDB
sudo service mongod start 或者 systemctl start mongod.service # 開啟MongoDB
sudo chkconfig mongod on # 加入開機啟動
sudo service mongod restart # 重啟MongoDB
// 2、關閉MongoDB
sudo service mongod stop # 關閉防火牆
// 3、解除安裝MongoDB
sudo yum erase $(rpm -qa | grep mongodb-org) # 解除安裝MongoDB
sudo rm -r /var/log/mongodb # 刪除日誌檔案
sudo rm -r /var/lib/mongo # 刪除資料檔案
複製程式碼
遠端連線Mongodb
1. 修改配置檔案mongodb.conf
vi /etc/mongod.conf
# network interfaces
net:
port: 27017
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.
複製程式碼
修改繫結ip預設127.0.0.1只允許本地連線, 所以修改為bindIp:0.0.0.0, 退出儲存
2. 重啟mongodb服務
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則失敗
複製程式碼
方法二
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT
複製程式碼
4. 遠端連線
預設連線
mongo 10.128.218.14:27017
複製程式碼
連線到自定義的使用者
- 建立使用者,設定賬號,密碼,許可權
// admin資料庫
> use admin
switched to db admin
> db.createUser({ user:"root", pwd:"123456", roles:["root"] })
Successfully added user: { "user" : "root", "roles" : [ "root" ] }
// 其他資料庫
> use test
switched to db test
> db.createUser({ user:"admin", pwd:"123456", roles:["readWrite", "dbAdmin"] })
Successfully added user: { "user" : "root", "roles" : [ "root" ] }
複製程式碼
- 修改mongodb.conf檔案,啟用身份驗證
vi /etc/mongod.conf
security:
authorization: "enabled" # disable or enabled
複製程式碼
- 重啟MongoDB
sudo service mongod restart
複製程式碼
- 使用者認證
> use admin
switched to db admin
> db.auth("root", "123456")
1 // 授權成功
複製程式碼
// 其他常用命令
db.updateUser(user, writeConcern) # 更新使用者
db.dropUser('test') # 刪除使用者
複製程式碼
- 遠端連線
// 終端連線
mongo 10.128.218.14:27017:27017/database -u username -p password
// mongoose方式連線
mongoose.connect('mongodb://username:password@host:port/database?options...', {useNewUrlParser: true});
// 通過客戶端連線
複製程式碼
使用者許可權角色說明
規則 | 說明 |
---|---|
root | 只在admin資料庫中可用。超級賬號,超級許可權 |
Read | 允許使用者讀取指定資料庫 |
readWrite | 允許使用者讀寫指定資料庫 |
dbAdmin | 允許使用者在指定資料庫中執行管理函式,如索引建立、刪除,檢視統計或訪問system.profile |
userAdmin | 允許使用者向system.users集合寫入,可以找指定資料庫裡建立、刪除和管理使用者 |
clusterAdmin | 只在admin資料庫中可用,賦予使用者所有分片和複製集相關函式的管理許可權 |
readAnyDatabase | 只在admin資料庫中可用,賦予使用者所有資料庫的讀許可權 |
readWriteAnyDatabase | 只在admin資料庫中可用,賦予使用者所有資料庫的讀寫許可權 |
userAdminAnyDatabase | 只在admin資料庫中可用,賦予使用者所有資料庫的userAdmin許可權 |
dbAdminAnyDatabase | 只在admin資料庫中可用,賦予使用者所有資料庫的dbAdmin許可權 |