1. 简介
上次更新日期:2020 年 5 月 4 日
考虑连接
市面上有许多类型的应用和框架。在此 Codelab 中,我们将介绍如何从任何位置连接到 Cloud SQL。通过明确授权允许连接的 IP 地址,即可启用连接功能。可以说,这是连接到 Cloud SQL 数据库的最不安全的选项,但也是最容易设置和开始使用的选项。
有时,在生产环境中必须这样做,但如果可以避免,您应选择更安全的替代方案(例如使用 Cloud SQL 代理)。此设置最适合开发和测试。
构建内容
此 Codelab 非常简洁。我们的目标是让您了解连接部分的细节,而无需过多考虑应用本身。在理想情况下,连接到 Cloud SQL 就像连接到任何其他 SQL 数据库实例一样,因此您应该能够将在此 Codelab 中创建的内容应用于任何生产应用。
本指南将详细介绍如何在 GCP 控制台中执行操作,同时还会提供可在 CLI 或自动化环境中使用的等效 gcloud 命令。
具体步骤如下:
- 创建 Cloud SQL 实例(本教程使用 Postgres,但同样适用于 MySQL 或 SQL Server),并授权允许连接到该实例的特定 IP
所需条件
- 您有权在其中启用 API 和创建服务的 GCP 账号
- 已安装的 Postgres 客户端,用于验证连接性(如果您想使用 MySQL 而不是 Postgres,则为 MySQL 客户端)
2. 创建 Cloud SQL 实例
Cloud SQL 是我们的托管关系型数据库产品。它支持 MySQL、PostgreSQL 和 SQL Server。在此 Codelab 中,我们将创建一个 Postgres 数据库,但对于所有这三种数据库,相关说明都类似。
在控制台中
前往 Cloud SQL 页面,然后点击
按钮。
如前所述,此 Codelab 的大部分内容适用于任何 SQL 风格,但在此 Codelab 中,请选择 PostgreSQL。
- 为实例提供一个 ID
- 选择离您最近的区域
- 为默认用户输入密码(用户名将是所选数据库的默认用户名,例如 MySQL 的
root或 PostgreSQL 的postgres) - 向下滚动,然后点击
show configuration options - 展开
Connectivity部分 - 确认
Public IP已勾选,且Private IP未勾选 - 点击
按钮 - 获取您连接时所用的 IP 地址。最简单的方法是直接在 Google 中搜索“我的 IP 地址是什么”,搜索结果中会显示您的面向公众的 IP 地址。
- 在网络字段中输入 IP 规范,根据需要为其命名,然后点击
New Network框中的“完成”。 - 向下滚动,然后点击“创建”
实例通常需要几分钟才能启动。
实例创建完成后,在列表中点击该实例,然后在概览页面上的 Connect to this instance 标题下,复制其中列出的 public IP address。即使您可以在实例完全实例化之前点击进入详细信息,但该实例在完全创建之前不会显示在列表中。
使用 gcloud
首先,您需要获取要授权连接到 Cloud SQL 实例的 IP 地址。最简单的方法是打开浏览器,搜索“我的 IP 地址是什么”,搜索结果中会显示您的面向公众的 IP 地址。不过,如果您无法从当前位置打开浏览器,可以使用 dig 等实用程序。
dig @resolver1.opendns.com ANY myip.opendns.com +short -4
您需要为 Cloud SQL 实例指定最靠近您所在位置的区域。您可以运行以下命令来查看区域列表:
gcloud sql tiers list
每个层级仅在某些地区提供。在本教程的 gcloud 部分,我们仅创建了一个微实例,因此您可以通过运行以下命令来查找此层级的可用区域(前提是您已安装 grep):
gcloud sql tiers list | grep db-f1-micro
然后,用于创建实例的命令如下所示(请务必将 <AUTHORIZED_IP> 替换为您从浏览器或 dig 获取的 IP,将 <REGION> 替换为离您较近的区域,并为根用户“postgres”设置密码):
gcloud sql instances create sql-codelab-00 --database-version=POSTGRES_11 --tier=db-f1-micro --region=<REGION> --authorized-networks=<AUTHORIZED_IP> --root-password=<PASSWORD>
此命令需要几分钟才能完成。
完成后,CLI 上的输出将列出实例的 PRIMARY_ADDRESS。复制该网址以供下一步使用。
3. 测试连接并总结
如需验证实例是否已正确设置,您可以在输入了 IP 地址的计算机上从命令行运行以下命令:
psql "host=<从上一步复制的 IP> port=5432 sslmode=disable user=postgres"
然后,指定您在创建 Cloud SQL 实例时设置的默认用户密码。
恭喜!如果一切顺利,您应该会看到 Postgres 提示,并且可以针对数据库运行命令。
后续操作
查看下列 Codelab…