Google Cloud SQL 是一项全托管式数据库服务,让您可以轻松地在云端设置、维护、管理和控制关系型 MySQL 数据库。
在此实验中,我们将创建一个新的空 Cloud SQL 实例,使用 MySQL 命令行界面连接到该实例,并创建一个新的空数据库。
学习内容
- 如何在 Google Cloud 控制台中访问 Cloud SQL 网页界面。
- 如何使用 Google Cloud 控制台创建 Cloud SQL 实例。
- 如何使用 Google Cloud 控制台设置根密码。
- 如何通过 Cloud Shell 连接到 Cloud SQL 实例。
- 如何使用 Google Cloud 控制台删除 Cloud SQL 实例。
所需条件
您将如何使用本教程?
您如何评价自己在使用 Google Cloud Platform 服务和 Firebase 方面的经验水平?
自定进度的环境设置
如果您还没有 Google 账号(Gmail 或 Google Apps),则必须创建一个。登录 Google Cloud Platform Console (console.cloud.google.com) 并创建一个新项目:
请记住项目 ID,它在所有 Google Cloud 项目中都是唯一名称(很抱歉,上述名称已被占用,您无法使用!)。它稍后将在此 Codelab 中被称为 PROJECT_ID
。
接下来,您需要在 Cloud Console 中启用结算功能,才能使用 Google Cloud 资源。
在此 Codelab 中运行仅花费几美元,但是如果您决定使用更多资源或继续让它们运行,费用可能更高(请参阅本文档末尾的“清理”部分)。
Google Cloud Platform 的新用户有资格获享 $300 免费试用。
在 Google Cloud 控制台 中,点击屏幕左上角的菜单图标:
向下滚动,然后在存储子部分中选择 SQL:
您现在应该会看到 Cloud SQL Web 界面,并且假设您使用的是当前没有任何 Cloud SQL 实例的项目,您会看到一个对话框,邀请您创建新的 Cloud SQL 实例。
如果您使用的项目已有一个或多个 Cloud SQL 实例,则会看到这些实例的列表:
假设您的项目没有 Cloud SQL 实例,请按创建实例按钮来创建一个实例:
如果您使用的项目已有一个或多个 Cloud SQL 实例,请按实例界面上的创建实例按钮,如下所示:
无论哪种情况,您现在都应该会看到选择实例类型页面。在此 Codelab 中,我们将创建一个 Cloud SQL 第二代实例。点击选择第二代。
您将转到创建实例页面。您必须在此处为实例指定名称。此名称在您的项目中必须是唯一的,但在不同项目之间不必唯一,因此您可以沿用此示例中显示的相同实例名称 codelab-0,前提是您的项目中没有其他 Cloud SQL 实例。在“实例 ID”框中输入“codelab-0”。在此 Codelab 中,其余配置可以保留默认值。
请注意,删除 Cloud SQL 实例后,您在长达一周的时间内都不能重新使用该实例名称。如果您打算将此项目用于实验以外的用途,请务必选择一个与您可能想用于实际工作的任何实例名称不同的实例名称,否则您可能会在一段时间内无法重复使用该实例名称。
滚动到页面底部,然后按创建。
系统会将您带到实例页面,您会在该页面上看到新实例,左侧有一个微调器,表示该实例仍在创建中:
两到三分钟后,实例将可供使用,蓝色旋转图标将变为绿色对勾标记。请务必不时刷新页面:
您的 Cloud SQL 实例现已可供使用。
点击实例名称以显示实例详情页面,然后点击访问控制:
在“访问权限控制”标签页上,按 Users(用户):
在“用户”标签页中,点击更改 root 密码:
在“更改密码”页面上输入新密码,然后按确定:
在 Google Cloud 控制台中,按提示按钮激活 Google Cloud Shell:
如果您是首次为此项目使用 Google Cloud Shell,则会看到 Google Cloud Shell 界面。按 Start Cloud Shell
新的 Cloud Shell 将显示在 Google Cloud 控制台底部。如果您是首次将 Cloud Shell 与此项目搭配使用,则在 Google Cloud Shell 屏幕上按 Start Cloud Shell 后,系统会显示新的 Cloud Shell;如果您之前使用过 Cloud Shell,则在按“Activate Google Cloud Shell”按钮后,系统会立即显示新的 Cloud Shell。
使用以下 gcloud sql 命令连接到您的 Cloud SQL 实例,但如果您的实例名称不同,请将“codelab-0”替换为您的实例名称:
gcloud sql connect codelab-0 --user=root
您应该会看到:
$ gcloud sql connect codelab-0 --user=root Whitelisting your IP for incoming connection for 1 minute...done. Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 11302 Server version: 5.6.29-google-log (Google) Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective Owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
如图所示,系统会提示您输入在上一步中设置的密码。现在,您已拥有功能齐全的 MySQL 提示符,并以“root”身份登录。您可以使用此功能输入 SQL 语句,例如以下语句用于创建名为“codelab”的新数据库:
mysql> CREATE DATABASE codelab; Query OK, 1 row affected (0.00 sec)
如果查询返回“OK”,则表示实例正常运行。我们退出并加载一些示例数据,以便运行一些实际查询。
输入“exit;”,然后按 Enter 键退出 mysql 提示符。
我们将加载 MySQL 官方文档中的员工示例数据集。
首先,我们需要下载脚本和数据:
$ wget https://codeload.github.com/datacharmer/test_db/zip/master -O sampledb.zip $ unzip sampledb.zip && cd test_db-master
其次,我们需要创建数据库和表,并加载数据。如果您的实例名称不同,请再次将 codelab-0 替换为您的实例名称:
$ gcloud sql connect codelab-0 --user=root < employees.sql
现在,我们可以查询数据了。您可以在下方找到一些示例查询。您也可以自行创建一些查询。如需熟悉数据库架构,请查看 employees.sql
文件。首次登录 SQL 提示符并切换到员工数据库。同样,如果实例名称不同,请将 codelab-0
替换为您的实例名称:
$ gcloud sql connect codelab-0 --user=root mysql> USE employees; Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -A Database changed mysql> SELECT avg(s.salary) avg_salary_by_hire_year, YEAR(e.hire_date) FROM employees e, salaries s WHERE e.emp_no = s.emp_no GROUP BY YEAR(e.hire_date); +-------------------------+-------------------+ | avg_salary_by_hire_year | YEAR(e.hire_date)| +-------------------------+-------------------+ | 66966.7550 | 1985 | | 66187.3453 | 1986 | ... 16 rows in set (2.70 sec) mysql> SELECT de.dept_no, sum(s.salary) sum_salaries_per_department FROM employees e, salaries s, dept_emp de WHERE e.emp_no = de.emp_no AND e.emp_no = s.emp_no GROUP BY de.dept_no; +---------+-----------------------------+ | dept_no | sum_salaries_per_department| +---------+-----------------------------+ | d001 | 13725425266 | | d002 | 11650834677 | ... +---------+-----------------------------+ 9 rows in set (4.22 sec) mysql> exit;
查询完示例员工数据集后,使用“exit”命令退出 mysql 提示符。
这是可选步骤。如果您想继续试用 Cloud SQL 实例,则无需立即将其删除。不过,您使用的项目仍需继续支付实例费用。如果您不再需要此实例,则应立即将其删除,以免产生这些费用。
请注意,删除 Cloud SQL 实例后,您在长达一周的时间内都不能重新使用该实例名称。
您可以通过以下两种方式删除 Cloud SQL 实例。
1) 在 Cloud Shell 环境中使用 gcloud
。如果您的实例名称不同,请再次将 codelab-0 替换为您的实例名称:
$ gcloud sql instances delete codelab-0 All of the instance data will be lost when the instance is deleted. Do you want to continue (Y/n)? Y Deleting Cloud SQL instance...done. Deleted $
或
2) 点击左上角的“SQL”,返回到 Cloud SQL 实例页面:
打开要删除的实例旁边的下拉菜单,然后选择“删除”:
删除实例是一项永久性操作!相应实例中的数据无法恢复。为防止意外删除错误的实例,您必须在确认对话框中输入实例名称来确认删除:
输入实例名称,然后按删除。
您已创建新的 Cloud SQL 实例、配置根密码、创建空数据库,并(可选)删除了 Cloud SQL 实例。
所学内容
- 通过 Google Cloud 控制台创建 Cloud SQL 实例。
- 通过 Google Cloud 控制台设置 SQL 根密码。
- 使用 mysql 客户端连接到数据库。
- 通过 mysql 提示符创建新的 MySQL 数据库。
- 正在删除 Cloud SQL 实例。
了解详情
- 查看 Google Cloud SQL 文档