1. 程式人生 > 實用技巧 >MongoDB_4.4 安裝和配置

MongoDB_4.4 安裝和配置

MongoDB4.xxx 安裝與配置

1、社群版 下載地址 www.mongodb.com/download-center/community ;
"install mongoDB compass" 不勾選;勾選後悔安裝這個資料庫管理工具;可以自定義目錄;其他預設;

2、配置環境變數
安裝目錄下的 bin 目錄 ; 如:C:\z_MongoDB\bin;配置到系統環境變數中(控制面板\系統和安全\系統\高階系統設定\環境變數;
會自動新增到服務中了;重啟執行命令 services.msc(window10)開啟服務介面,此時已經自動新增到系統服務裡面了,每次開機自動重啟

3、建立超級管理員賬戶

use admin
db.createUser({
    user:'admin',
    pwd:'123456',
    roles:[{role:'root',db:'admin'}]
})
刪除超級賬戶:db.dropUers('admin');

C:\z_MongoDB\bin\mongod.cfg 找到這個配置檔案  放開 security表示開啟許可權驗證
這個檔案有嚴格的格式,注意空格(1053錯誤,無法重啟)
security:
   authorization: enabled

注意:authorization 冒號 後面有個空格 去掉或多加一個空格都會報錯;

4、用超級管理員賬戶連線資料庫(用命令列)
mongo admin -u 使用者名稱-p 密碼
mongo 192.168.1.200:27017/test -u user -p password
其他連結方式:const url = 'mongodb://admin:123456@localhost:27017/';

5、使用超級管理員登入後,給某個資料庫單獨建立使用者名稱,密碼,及許可權

use 資料庫名
db.createUser({
   user:"eggadmin",
   pwd:"123456",
   roles:[{role:"dbOwner",db:"eggcms"}] 
})

6、資料庫角色分類
(1)資料庫使用者角色:read、readWrite;
(2)資料庫管理角色:dbAdmin、dbOwner、userAdmin;
(3)叢集管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
(4)備份恢復角色:backup、restore;
(5)所有資料庫角色: readAnyDatabase、readWriteAnyDatabase、 userAdminAnyDatabase、dbAdminAnyDatabase
(6)超級使用者角色:root

7、基本管理命令
1、show users; // 檢視當前庫下的使用者
2、db.dropUser("eggadmin") // 刪除使用者
3、db.updateUser("admin",{pwd:"password"}); // 修改使用者密碼
4、db.auth("admin","password"); // 密碼認證 (資料庫設定了密碼,要認證後才能連線成功)
5、show tables // 列出該庫下所有表

8、匯出與恢復
MongoDB 4.4版本 之後 MongoDB資料庫工具現在與MongoDB服務 分開發布 需要單獨安裝
1. 下載地址
2. windwos 下載後解壓,配置到環境變數 path 中,然後就可以使用 mongodump、 mongorestore、 mongoimport、 mongoexport 命名來備份了
3. 在匯入其他人的庫後,應該清空 -->該庫下的使用者 -->再建立使用者後再連結;

備份單個表
mongodump -u  superuser -p 123456  --port 27017 --authenticationDatabase admin -d myTest -c d -o /backup/mongodb/myTest_d_bak_201507021701.bak

備份單個庫
mongodump  -u  superuser -p 123456 --port 27017  --authenticationDatabase admin -d myTest -o  /backup/mongodb/

備份所有庫
mongodump  -u  superuser -p 123456 --authenticationDatabase admin  --port 27017 -o /root/bak 

備份所有庫推薦使用新增--oplog引數的命令,這樣的備份是基於某一時間點的快照,只能用於備份全部庫時才可用,單庫和單表不適用:
mongodump -h 127.0.0.1 --port 27017   --oplog -o  /root/bak 

同時,恢復時也要加上--oplogReplay引數,具體命令如下(下面是恢復單庫的命令):
mongorestore  -d swrd --oplogReplay  /home/mongo/swrdbak/swrd/


恢復單個庫:
mongorestore  -u  superuser -p 123456 --port 27017  --authenticationDatabase admin -d myTest   /backup/mongodb/

恢復所有庫:
mongorestore   -u  superuser -p 123456 --port 27017  --authenticationDatabase admin  /root/bak

恢復單表
mongorestore -u  superuser -p 123456  --authenticationDatabase admin -d myTest -c d /backup/mongodb/myTest_d_bak_201507021701.bak/myTest/d.bson

注意:
      1.mongorestore恢復資料預設是追加,如打算先刪除後匯入,可以加上--drop引數,不過新增--drop引數後,會將資料庫資料清空後再匯入,如果資料庫備份後又新加入了資料,也會將新加的資料刪除,它不像mysql有一個存在的判斷
      2.mongodump在mongo關閉時,也是可以備份的,不過需要指定資料目錄,命令為:mongodump  --dbpath  /data/db

9、mongodump與mongoexport的區別:

      1. mongodump匯出的是bson格式,是二進位制形式,不過可以使用mongo自帶的bsondump命令檢視裡面的資料,而mongoexport匯出的則是文字,可以是csv、json格式。    
      2. JSON可讀性強但體積較大,BSON則是二進位制檔案,體積小但對人類幾乎沒有可讀性。
      3. 在一些mongodb版本之間,BSON格式可能會隨版本不同而有所不同,所以不同版本之間用mongodump/mongorestore可能不會成功,具體要看版本之間的相容性。當無法使用BSON進行跨版本的資料遷移的時候,使用JSON格式即mongoexport/mongoimport是                                    一個可選項。跨版本的mongodump/mongorestore個人並不推薦,實在要做請先檢查文件看兩個版本是否相容(大部分時候是的)
      4.JSON雖然具有較好的跨版本通用性,但其只保留了資料部分,不保留索引,賬戶等其他基礎資訊。使用時應該注意。