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:9030,192.168.xx.xx:9030/admin?authSource=admin"
| 參數 | 說明 |
|---|---|
| root | 表示數據庫帳號名。默認創建root賬號,也可以是您創建的賬號。 |
| password | 表示數據庫帳號對應的密碼,需要替換為真實密碼。如果密碼中包含特殊字符“@”、“!”和“%”需要分別替換為對應的十六進制的URL編碼(ASCII碼)“%40”、“%21”和“%25”。示例:密碼為****@%!,對應的URL編碼為****%40%25%21。 |
| 192.168.xx.xx:9030,192.168.xx.xx:9030 | 待連接實例的mongod節點IP地址及端口號,集群實例為mongos節點IP地址及端口號。mongod默認端口8030,mongos默認端口9030。 |
| admin | 表示admin庫名,可根據實際情況設置。 |
| authSource=admin | root帳號認證數據庫必須為“admin”,root賬號為“authSource=admin”固定格式不可改變,也可以是您創建賬號所在的庫。 |
IPv6連接方式
連接示例:
./mongo "mongodb://root:password@[240e:982:d93d:9500:9cc4:4f9b::]:8030/admin?authSource=admin" --ipv6
| 參數 | 說明 |
|---|---|
| root | 表示數據庫帳號名。默認創建root賬號,也可以是您創建的賬號。 |
| password | 表示數據庫帳號對應的密碼,需要替換為真實密碼。如果密碼中包含特殊字符“@”、“!”和“%”需要分別替換為對應的十六進制的URL編碼(ASCII碼)“%40”、“%21”和“%25”。示例:密碼為****@%!,對應的URL編碼為****%40%25%21。 |
| [240e:982:d93d:9500:9cc4:4f9b::]:8030 | 待連接實例的mongod節點IPv6 IP地址及端口號,集群實例為mongos節點IP地址及端口號。mongod默認端口8030,mongos默認端口9030。 |
| admin | 表示admin庫名,可根據實際情況設置。 |
| authSource=admin | root帳號認證數據庫必須為“admin”,root賬號為“authSource=admin”固定格式不可改變,也可以是您創建賬號所在的庫。 |
| --ipv6 | IPv6連接方式 |
方式二:內網IP地址連接
命令格式:
./mongo --host <db_host> --port <db_port> -u <db_user> -p --authenticationDatabase admin
IPv4連接方式
連接示例:
./mongo --host 192.168.xx.xx --port 9030 -u root -p --authenticationDatabase admin
IPv6連接方式
連接實例:
./mongo --host 240e:982:d93d:9500:9cc4:4f9b:a4d7:5f24 --port 9030 -u root -p --authenticationDatabase admin --ipv6
| 參數 | 說明 |
|---|---|
| db_user | 表示數據庫帳號名。默認創建root賬號,也可以是您創建的賬號。 |
| db_host | 待連接實例的mongod節點IP地址,集群實例為mongos節點IP地址。 |
| db_port | 待連接實例的mongod節點端口號,集群實例為mongos節點端口號。 |
| --authenticationDatabase admin | root帳號認證數據庫必須為“admin”,root賬號為“--authenticationDatabase admin”固定格式不可改變,也可以是您創建賬號所在的庫。 |
| --ipv6 | IPv6連接方式 |
出現如下提示時,輸入數據庫帳號對應的密碼:
Enter password:
出現如下信息,說明連接成功。
- 集群:
mongos>
- 副本集主和備:
DDS:PRIMARY>
DDS:SECONDARY>
SSL方式
- 進入TeleDB數據庫控制臺。
- 在“DDS”>“實例管理”頁面,選擇指定的目標實例,單擊實例名稱,進入“基本信息”頁面。
- 在實例信息中開啟SSL,點擊下載證書。
- 連接彈性云主機,上傳證書至彈性云主機。
- 在客戶端工具mongo所在的目錄下,連接數據庫實例。
方式一:內網高可用連接(推薦)
命令格式:
./mongo <內網高可用連接地址> --ssl --sslCAFile <file_path> --sslAllowInvalidHostnames
內網高可用連接地址:您可以在“基本信息>數據庫連接”處獲取。
IPv4連接方式
連接示例:
./mongo "mongodb://root:password@192.168.xx.xx:9030,192.168.xx.xx:9030/admin?authSource=admin" --ssl --sslCAFile /conf/ca.crt -sslAllowInvalidHostnames
| 參數 | 說明 |
|---|---|
| root | 表示數據庫帳號名。默認創建root賬號,也可以是您創建的賬號。 |
| password | 表示數據庫帳號對應的密碼,需要替換為真實密碼。如果密碼中包含特殊字符“@”、“!”和“%”需要分別替換為對應的十六進制的URL編碼(ASCII碼)“%40”、“%21”和“%25”。示例:密碼為****@%!,對應的URL編碼為****%40%25%21。 |
| 192.168.xx.xx:9030,192.168.xx.xx:9030 | 待連接實例的mongod節點IP地址及端口號,集群實例為mongos節點IP地址及端口號。mongod默認端口8030,mongos默認端口9030。 |
| admin | 表示admin庫名,可根據實際情況設置。 |
| authSource=admin | root帳號認證數據庫必須為“admin”,root賬號為“authSource=admin”固定格式不可改變,也可以是您創建賬號所在的庫。 |
| file_path | 存放根證書的路徑。 |
| --sslAllowInvalidHostnames | 證書使用內部IP地址生成。通過內網SSL連接實例時,需要添加“--sslAllowInvalidHostnames”。 |
IPv6連接方式
連接示例:
./mongo "mongodb://root:password@[240e:982:d93d:9500:9cc4::]:8030/admin?authSource=admin" --ipv6 --ssl --sslCAFile /conf/ca.crt -sslAllowInvalidHostnames
| 參數 | 說明 |
|---|---|
| root | 表示數據庫帳號名。默認創建root賬號,也可以是您創建的賬號。 |
| password | 表示數據庫帳號對應的密碼,需要替換為真實密碼。如果密碼中包含特殊字符“@”、“!”和“%”需要分別替換為對應的十六進制的URL編碼(ASCII碼)“%40”、“%21”和“%25”。示例:密碼為****@%!,對應的URL編碼為****%40%25%21。 |
| [240e:982:d93d:9500:9cc4::]:8030 | 待連接實例的mongod節點IPv6 IP地址及端口號,集群實例為mongos節點IP地址及端口號。mongod默認端口8030,mongos默認端口9030。 |
| admin | 表示admin庫名,可根據實際情況設置。 |
| authSource=admin | root帳號認證數據庫必須為“admin”,root賬號為“authSource=admin”固定格式不可改變,也可以是您創建賬號所在的庫。 |
| file_path | 存放根證書的路徑。 |
| --sslAllowInvalidHostnames | 證書使用內部IP地址生成。通過內網SSL連接實例時,需要添加“--sslAllowInvalidHostnames”。 |
| --ipv6 | IPv6連接方式 |
方式二:內網IP地址連接
命令格式:
./mongo --host <db_host> --port <db_port> -u <db_user> -p --authenticationDatabase admin --ssl --sslCAFile <file_path> --sslAllowInvalidHostnames
IPv4連接方式
連接示例:
./mongo --host 192.168.xx.xx --port 9030 -u root -p --authenticationDatabase admin --ssl --sslCAFile /conf/ca.crt --sslAllowInvalidHostnames
IPv6連接方式
連接示例:
./mongo --host 240e:982:d93d:9500:9cc4:4f9b:a4d7:5f24 --port 9030 -u root -p --authenticationDatabase admin --ipv6 --ssl --sslCAFile /conf/ca.crt --sslAllowInvalidHostnames
| 參數 | 說明 |
|---|---|
| db_user | 表示數據庫帳號名。默認創建root賬號,也可以是您創建的賬號。 |
| db_host | 待連接實例的mongod節點IP地址,集群實例為mongos節點IP地址。 |
| db_port | 待連接實例的mongod節點端口號,集群實例為mongos節點端口號。 |
| --authenticationDatabase admin | root帳號認證數據庫必須為“admin”,root賬號為“--authenticationDatabase admin”固定格式不可改變,也可以是您創建賬號所在的庫。 |
| file_path | 存放根證書的路徑。 |
| --sslAllowInvalidHostnames | 證書使用內部IP地址生成。通過內網SSL連接實例時,需要添加“--sslAllowInvalidHostnames”。 |
| --ipv6 | IPv6連接方式 |
出現如下提示時,輸入數據庫帳號對應的密碼:
Enter password:
出現如下信息,說明連接成功。
- 集群:
mongos>
- 副本集主和備:
DDS:PRIMARY>
DDS:SECONDARY>