Mongo Shell是MongoDB自帶的Shell客戶端,您可以使用Mongo Shell連接數據庫實例、對數據庫進行數據查詢和更新、執行管理等操作。 Mongo Shell是MongoDB客戶端的一部分,您需要先下載和安裝MongoDB客戶端,再使用Mongo Shell連接數據庫實例。
文檔數據庫服務實例默認提供內網IP地址,當應用部署在彈性云服務器上,且該彈性云服務器與文檔數據庫服務實例處于同一區域,同一VPC時,可以使用內網連接文檔數據庫服務實例,該方式可以獲得更快的傳輸速率和更高的安全性。
本文以部署在彈性云服務器上的應用場景為例,介紹如何使用Mongo Shell通過內網的方式連接實例。
連接實例的方式有SSL連接和非SSL連接兩種方法,其中SSL連接進行了加密,具有更高的安全性。為了提升數據在網絡傳輸過程中的安全性,建議采用SSL方式。
前提條件
- 創建并登錄彈性云服務器。
- 在彈性云服務器上,安裝MongoDB客戶端。為了保障鑒權成功,請安裝與目標實例版本一致的MongoDB客戶端版本。
- 設置安全組規則,確保彈性云服務器和文檔數據庫服務實例實現網絡互通。
非SSL連接
- 進入“TeleDB數據庫控制臺”。
- 在“DDS”>“實例管理”頁面,選擇指定的副本集實例,單擊實例名稱,進入“基本信息”頁面。
- 在實例信息中關閉SSL。
- 連接彈性云服務器。
- 在客戶端工具mongo所在的目錄下,連接數據庫實例。
內網高可用只讀從連接
命令格式:
./mongo <內網高可用只讀從連接地址>
內網高可用只讀從連接地址:您可以在“基本信息>只讀從連接”處獲取。
IPv4連接方式
連接示例:
./mongo "mongodb://root:password@192.168.xx.xx:8030/admin?authSource=admin&readPreference=secondary&readPreferenceTags=role:readOnly&replicaSet=DDS"
| 參數 | 說明 |
|---|---|
| root | 表示數據庫帳號名。默認創建root賬號,也可以是您創建的賬號。 |
| password | 表示數據庫帳號對應的密碼,需要替換為真實密碼。如果密碼中包含特殊字符“@”、“!”和“%”需要分別替換為對應的十六進制的URL編碼(ASCII碼)“%40”、“%21”和“%25”。示例:密碼為****@%!,對應的URL編碼為****%40%25%21。 |
| 192.168.xx.xx:8030 | 待連接實例的mongod節點IP地址及端口號。mongod默認端口8030。 |
| admin | 表示admin庫名,可根據實際情況設置。 |
| authSource=admin | root帳號認證數據庫必須為“admin”,root賬號為“authSource=admin”固定格式不可改變,也可以是您創建賬號所在的庫。 |
| readPreference=[secondary \ secondaryPreferred] | 實現讀寫分離和負載均衡,該參數可以將寫請求發送到主節點,讀請求隨機發送到從節點和只讀節點,取值說明如下:readPreference=secondary:如果從節點和只讀節點都出現故障,讀請求失敗,不會發送到主節點。readPreference=secondaryPreferred:如果從節點和只讀節點都出現故障,該參數將讀請求發送到主節點。 |
| readPreferenceTags=[readonly_Tags] | 該參數可以將讀請求優先發送到標簽對應的只讀節點。readonly_Tags為只讀節點的標簽鍵值對列表,固定取值為role:readOnly,不允許修改。 |
| replicaSet=[replicaSet_value] | 指定副本集的名稱。 |
IPv6連接方式
連接示例:
./mongo "mongodb://root:password@[240e:982:d93d:9500:a13:894e::]:8030/admin?authSource=admin&readPreference=secondary&readPreferenceTags=role:readOnly&replicaSet=DDS" --ipv6
| 參數 | 說明 |
|---|---|
| root | 表示數據庫帳號名。默認創建root賬號,也可以是您創建的賬號。 |
| password | 表示數據庫帳號對應的密碼,需要替換為真實密碼。如果密碼中包含特殊字符“@”、“!”和“%”需要分別替換為對應的十六進制的URL編碼(ASCII碼)“%40”、“%21”和“%25”。示例:密碼為****@%!,對應的URL編碼為****%40%25%21。 |
| [240e:982:d93d:9500:a13:894e::]:8030 | 待連接實例的mongod節點IPv6 IP地址及端口號。mongod默認端口8030。 |
| admin | 表示admin庫名,可根據實際情況設置。 |
| authSource=admin | root帳號認證數據庫必須為“admin”,root賬號為“authSource=admin”固定格式不可改變,也可以是您創建賬號所在的庫。 |
| readPreference=[secondary \ secondaryPreferred] | 實現讀寫分離和負載均衡,該參數可以將寫請求發送到主節點,讀請求隨機發送到從節點和只讀節點,取值說明如下:readPreference=secondary:如果從節點和只讀節點都出現故障,讀請求失敗,不會發送到主節點。readPreference=secondaryPreferred:如果從節點和只讀節點都出現故障,該參數將讀請求發送到主節點。 |
| readPreferenceTags=[readonly_Tags] | 該參數可以將讀請求優先發送到標簽對應的只讀節點。readonly_Tags為只讀節點的標簽鍵值對列表,固定取值為role:readOnly,不允許修改。 |
| replicaSet=[replicaSet_value] | 指定副本集的名稱。 |
| --ipv6 | IPv6連接方式 |
出現如下信息,說明連接成功。
DDS:SECONDARY>
SSL方式
- 進入“TeleDB數據庫控制臺”。
- 在“DDS”>“實例管理”頁面,選擇指定的目標實例,單擊實例名稱,進入“基本信息”頁面。
- 在實例信息中開啟SSL,點擊下載證書。
- 連接彈性云服務器,上傳證書至彈性云服務器。
- 在客戶端工具mongo所在的目錄下,連接數據庫實例。
內網高可用只讀從連接
命令格式:
./mongo <內網高可用只讀從連接地址> --ssl --sslCAFile <file_path> --sslAllowInvalidHostnames
內網高可用只讀從連接地址:您可以在“基本信息>只讀從連接”處獲取。
IPv4連接方式
連接示例:
./mongo "mongodb://root:password@192.168.xx.xx:8030/admin?authSource=admin&readPreference=secondary&readPreferenceTags=role:readOnly&replicaSet=DDS" --ssl --sslCAFile /conf/ca.crt -sslAllowInvalidHostnames
| 參數 | 說明 |
|---|---|
| root | 表示數據庫帳號名。默認創建root賬號,也可以是您創建的賬號。 |
| password | 表示數據庫帳號對應的密碼,需要替換為真實密碼。如果密碼中包含特殊字符“@”、“!”和“%”需要分別替換為對應的十六進制的URL編碼(ASCII碼)“%40”、“%21”和“%25”。示例:密碼為****@%!,對應的URL編碼為****%40%25%21。 |
| 192.168.xx.xx:8030 | 待連接實例的mongod節點IP地址及端口號。mongod默認端口8030。 |
| admin | 表示admin庫名,可根據實際情況設置。 |
| authSource=admin | root帳號認證數據庫必須為“admin”,root賬號為“authSource=admin”固定格式不可改變,也可以是您創建賬號所在的庫。 |
| file_path | 存放根證書的路徑。 |
| --sslAllowInvalidHostnames | 證書使用內部IP地址生成。通過內網SSL連接實例時,需要添加“--sslAllowInvalidHostnames”。 |
| readPreference=[secondary \ secondaryPreferred] | 實現讀寫分離和負載均衡,該參數可以將寫請求發送到主節點,讀請求隨機發送到從節點和只讀節點,取值說明如下:readPreference=secondary:如果從節點和只讀節點都出現故障,讀請求失敗,不會發送到主節點。readPreference=secondaryPreferred:如果從節點和只讀節點都出現故障,該參數將讀請求發送到主節點。 |
| readPreferenceTags=[readonly_Tags] | 該參數可以將讀請求優先發送到標簽對應的只讀節點。readonly_Tags為只讀節點的標簽鍵值對列表,固定取值為role:readOnly,不允許修改。 |
| replicaSet=[replicaSet_value] | 指定副本集的名稱。 |
IPv6連接方式
連接示例:
./mongo "mongodb://root:password@[240e:982:d93d:9500:a13:894e::]:8030/admin?authSource=admin&readPreference=secondary&readPreferenceTags=role:readOnly&replicaSet=DDS" --ssl --sslCAFile /conf/ca.crt -sslAllowInvalidHostnames --ipv6
| 參數 | 說明 |
|---|---|
| root | 表示數據庫帳號名。默認創建root賬號,也可以是您創建的賬號。 |
| password | 表示數據庫帳號對應的密碼,需要替換為真實密碼。如果密碼中包含特殊字符“@”、“!”和“%”需要分別替換為對應的十六進制的URL編碼(ASCII碼)“%40”、“%21”和“%25”。示例:密碼為****@%!,對應的URL編碼為****%40%25%21。 |
| [240e:982:d93d:9500:a13:894e::]:8030 | 待連接實例的mongod節點IPv6 IP地址及端口號。mongod默認端口8030。 |
| admin | 表示admin庫名,可根據實際情況設置。 |
| authSource=admin | root帳號認證數據庫必須為“admin”,root賬號為“authSource=admin”固定格式不可改變,也可以是您創建賬號所在的庫。 |
| file_path | 存放根證書的路徑。 |
| --sslAllowInvalidHostnames | 證書使用內部IP地址生成。通過內網SSL連接實例時,需要添加“--sslAllowInvalidHostnames”。 |
| readPreference=[secondary \ secondaryPreferred] | 實現讀寫分離和負載均衡,該參數可以將寫請求發送到主節點,讀請求隨機發送到從節點和只讀節點,取值說明如下:readPreference=secondary:如果從節點和只讀節點都出現故障,讀請求失敗,不會發送到主節點。readPreference=secondaryPreferred:如果從節點和只讀節點都出現故障,該參數將讀請求發送到主節點。 |
| readPreferenceTags=[readonly_Tags] | 該參數可以將讀請求優先發送到標簽對應的只讀節點。readonly_Tags為只讀節點的標簽鍵值對列表,固定取值為role:readOnly,不允許修改。 |
| replicaSet=[replicaSet_value] | 指定副本集的名稱。 |
| --ipv6 | IPv6連接方式 |
出現如下信息,說明連接成功。
DDS:SECONDARY>