快速入門:使用 Azure CLI 建立適用於 PostgreSQL 的 Azure 資料庫伺服器

本快速入門說明如何使用 Azure Cloud Shell 中的 Azure CLI 命令,在五分鐘內建立單一的「適用於 PostgreSQL 的 Azure 資料庫」伺服器。 如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶

必要條件

  • Azure Cloud Shell中使用 Bash 環境。

    在新視窗中啟動 Cloud Shell

  • 如果想要,請安裝 Azure CLI 以執行 CLI 參考命令。

    • 如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱使用 Azure CLI 登入

    • 出現提示時,請在第一次使用時安裝 Azure CLI 擴充功能。 如需擴充功能詳細資訊,請參閱使用 Azure CLI 擴充功能

    • 執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade

  • 本文需要 2.0 版或更新版本的 Azure CLI。 如果您是使用 Azure Cloud Shell,就已安裝最新版本。

    提示

    請考慮使用較簡單的 az postgres up Azure CLI 命令 (目前在預覽狀態)。 試用快速入門

  • 使用 az account set 命令來選取您帳戶底下的特定訂用帳戶 ID。

    • 記下 az login 輸出中的 id 值,作為命令中 訂用帳戶 引數的值。

      az account set --subscription <subscription id>
      
    • 如果您有多個訂用帳戶,請選擇資源計費的適當訂用帳戶。 若要取得您的所有訂用帳戶,請使用 az account list

建立適用於 PostgreSQL 的 Azure 資料庫伺服器

使用 az group create 命令建立 Azure 資源群組,然後在此資源群組內建立您的 PostgreSQL 伺服器。 請提供唯一的名稱。 下列範例會在 westus 位置建立名為 myresourcegroup 的資源群組。

az group create --name myresourcegroup --location westus

使用 az postgres server create 命令來建立適用於 PostgreSQL 的 Azure 資料庫伺服器。 一部伺服器可以包含多個資料庫。

az postgres server create --resource-group myresourcegroup --name mydemoserver  --location westus --admin-user myadmin --admin-password <server_admin_password> --sku-name GP_Gen5_2 

以下是上述引數的詳細資料:

設定 範例值 說明
NAME mydemoserver 可識別 Azure Database for PostgreSQL 伺服器的唯一名稱。 伺服器名稱只能包含小寫字母、數字及連字號 (-) 字元。 其必須包含 3 到 63 個字元。 如需詳細資訊,請參閱適用於 PostgreSQL 的 Azure 資料庫命名規則
resource-group myresourcegroup Azure 資源群組的名稱。
location westus 伺服器的 Azure 位置。
admin-user myadmin 適用於系統管理員登入的使用者名稱。 此名稱不得為 azure_superuseradminadministratorrootguestpublic
admin-password 安全密碼 系統管理員使用者的密碼。 其必須包含 8 到 128 個字元,且來自下列類別的其中三個類別:英文大寫字母、英文小寫字母、數字及非英數字元。
sku-name GP_Gen5_2 定價層和計算設定的名稱。 遵循簡短形式的慣例 {pricing tier} {compute generation} {vCores}。 如需詳細資訊,請參閱適用於 PostgreSQL 的 Azure 資料庫定價

重要

設定伺服器層級防火牆規則

根據預設,您建立的伺服器不可公開存取,且受防火牆規則保護。 您可以使用 az postgres server firewall-rule create 命令,在伺服器上設定防火牆規則,讓您的本機環境能夠連線到伺服器並存取。

下列範例會建立名為 AllowMyIP 的防火牆規則,以允許來自特定 IP 位址 192.168.0.1 的連線。 請取代為與您的連線來源相對應的 IP 位址或 IP 位址範圍。 如果您不知道 IP 位址,請移至 WhatIsMyIPAddress.com 加以取得。

az postgres server firewall-rule create --resource-group myresourcegroup --server mydemoserver --name AllowMyIP --start-ip-address 192.168.0.1 --end-ip-address 192.168.0.1

注意

為了避免連線問題,請確定您的網路防火牆允許連接埠 5432。 適用於 PostgreSQL 的 Azure 資料庫伺服器會使用該連接埠。

取得連線資訊

若要連線到您的伺服器,請提供主機資訊和存取認證。

az postgres server show --resource-group myresourcegroup --name mydemoserver

結果會採用 JSON 格式。 請記下 administratorLoginfullyQualifiedDomainName 值。

{
  "administratorLogin": "myadmin",
  "earliestRestoreDate": null,
  "fullyQualifiedDomainName": "mydemoserver.postgres.database.azure.com",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.DBforPostgreSQL/servers/mydemoserver",
  "location": "westus",
  "name": "mydemoserver",
  "resourceGroup": "myresourcegroup",
  "sku": {
    "capacity": 2,
    "family": "Gen5",
    "name": "GP_Gen5_2",
    "size": null,
    "tier": "GeneralPurpose"
  },
  "sslEnforcement": "Enabled",
  "storageProfile": {
    "backupRetentionDays": 7,
    "geoRedundantBackup": "Disabled",
    "storageMb": 5120
  },
  "tags": null,
  "type": "Microsoft.DBforPostgreSQL/servers",
  "userVisibleState": "Ready",
  "version": "9.6"
}

使用 psql 連線到適用於 PostgreSQL 資料庫的 Azure 資料庫伺服器

psql 用戶端是用於連線到 PostgreSQL 伺服器的熱門選擇。 您可以搭配使用 psql 與 Azure Cloud Shell 來連線到您的伺服器。 您也可以在本機環境中使用 psql (如果有的話)。 系統會使用新的 PostgreSQL 伺服器自動建立空的資料庫 postgres。 您可以使用該資料庫來與 psql 連線,如下列程式碼所示。

psql --host=mydemoserver.postgres.database.azure.com --port=5432 --username=myadmin@mydemoserver --dbname=postgres

提示

如果您想要使用 URL 路徑來連線到 Postgres,在進行 URL 編碼時,請將使用者名稱中的 @ 符號編碼為 %40。 例如,psql 的連接字串會是:

psql postgresql://myadmin%40mydemoserver@mydemoserver.postgres.database.azure.com:5432/postgres

清除資源

如果您不需要這些資源來進行其他快速入門或教學課程,可以執行下列命令加以刪除。

az group delete --name myresourcegroup

如果您只想要刪除一個新建立的伺服器,則可以執行 az postgres server delete 命令。

az postgres server delete --resource-group myresourcegroup --name mydemoserver

後續步驟