快速入门:使用 Azure CLI 创建 Azure Database for PostgreSQL 服务器

本快速入门介绍如何使用 Azure CLI 命令在 5 分钟内创建单个 Azure Database for PostgreSQL 服务器。 如果没有 Azure 订阅,请在开始前创建一个试用帐户

先决条件

  • 如果需要,请安装 Azure CLI 来运行 CLI 参考命令。

    • 如果使用的是本地安装,请使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅登录 Azure CLI

    • 出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展

    • 运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade

  • 本文需要 Azure CLI 版本 2.0 或更高版本。

    提示

    请考虑使用更简单的 az postgres up Azure CLI 命令(当前为预览版)。 试用快速入门

  • 使用 az account set 命令选择帐户下的特定订阅 ID。

    • 记下 az login 输出中的 id 值,以用作命令中 subscription 参数的值 。

      az account set --subscription <subscription id>
      
    • 如果有多个订阅,请选择应计费的资源所在的相应订阅。 若要获取所有订阅,请使用 az account list

创建 Azure Database for PostgreSQL 服务器

使用 az group create 命令创建 Azure 资源组,然后在此资源组中创建 PostgreSQL 服务器。 应提供唯一名称。 以下示例在 chinaeast2 位置创建名为 myresourcegroup 的资源组。

az group create --name myresourcegroup --location chinaeast2

使用 az postgres server create 命令创建 Azure Database for PostgreSQL 服务器。 一个服务器可以包含多个数据库。

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

下面是上述参数的详细信息:

设置 示例值 说明
name mydemoserver 标识 Azure Database for PostgreSQL 服务器的唯一名称。 服务器名称只能包含小写字母、数字和连字符 (-) 字符。 必须包含 3 到 63 个字符。 有关详细信息,请参阅 Azure Database for PostgreSQL 命名规则
resource-group myresourcegroup Azure 资源组的名称。
location chinaeast2 服务器的 Azure 位置。
admin-user myadmin 用于管理员登录的用户名。 它不能为“azure_superuser”、“admin”、“administrator”、“root”、“guest”或“public” 。
admin-password 安全密码 管理员用户的密码。 密码必须包含以下三个类别的 8 到 128 个字符:英文大写字母、英文小写字母、数字和非字母数字字符。
sku-name GP_Gen5_2 定价层和计算配置的名称。 请遵循简写约定 {pricing tier} {compute generation} {vCores}。 有关详细信息,请参阅 Azure Database for PostgreSQL 定价

重要

  • 服务器上的默认 PostgreSQL 版本为 9.6。 若要查看支持的所有版本,请参阅支持的 PostgreSQL 主要版本
  • 若要查看 az postgres server create 命令的所有参数,请参阅此参考文档
  • 默认情况下,服务器上启用 SSL。 有关 SSL 的详细信息,请参阅配置 SSL 连接

配置服务器级防火墙规则

默认情况下,你创建的服务器不可公开访问,并受防火墙规则保护。 可以使用 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。 Azure Database for PostgreSQL 服务器使用该端口。

获取连接信息

若要连接到服务器,请提供主机信息和访问凭据。

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

结果采用 JSON 格式。 记下 administratorLogin 和 fullyQualifiedDomainName 值 。

{
  "administratorLogin": "myadmin",
  "earliestRestoreDate": null,
  "fullyQualifiedDomainName": "mydemoserver.postgres.database.chinacloudapi.cn",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.DBforPostgreSQL/servers/mydemoserver",
  "location": "chinaeast2",
  "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 连接到 Azure Database for PostgreSQL 服务器

psql 客户端是连接到 PostgreSQL 服务器的热门选择。 还可以在本地环境中使用 psql(如果可用)连接到服务器。 将使用新的 PostgreSQL 服务器自动创建空数据库 postgres。 可以使用该数据库与 psql 连接,如下面的代码所示。

psql --host=mydemoserver.postgres.database.chinacloudapi.cn --port=5432 --username=myadmin@mydemoserver --dbname=postgres

提示

如果更喜欢使用 URL 路径连接到 Postgres,则 URL 会使用 %40 对用户名中的 @ 符号进行编码。 例如,psql 的连接字符串将是:

psql postgresql://myadmin%40mydemoserver@mydemoserver.postgres.database.chinacloudapi.cn:5432/postgres

清理资源

如果不需要将这些资源用于其他快速入门或教程,则可通过运行以下命令将其删除。

az group delete --name myresourcegroup

若要删除新创建的服务器,可运行 az postgres server delete 命令。

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

后续步骤