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
- 选择您所在位置附近的区域
- 输入默认用户的密码(用户名将是所选数据库的默认用户名,例如
root
(对于 MySQL)或postgres
(对于 PostgreSQL) - 向下滚动,然后点击
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> 替换为您附近的 IP 地址,以及根用户“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…