Google Cloud SQL 是一项全代管式数据库服务,可让您轻松地在云端设置、维护、管理和控制关系型 MySQL 数据库。
在本实验中,我们将创建一个新的空 Cloud SQL 实例,使用 MySQL 命令行界面连接到该实例,然后创建一个新的空数据库。
学习内容
- 如何在 Google Cloud Console 中访问 Cloud SQL 网页界面。
- 如何使用 Google Cloud Console 创建 Cloud SQL 实例。
- 如何使用 Google Cloud Console 设置 root 密码。
- 如何通过 Cloud Shell 连接到 Cloud SQL 实例。
- 如何使用 Google Cloud Console 删除 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 Console 中,点击屏幕左上角的菜单图标:
向下滚动,然后在存储子部分中选择 SQL:
现在,您应该会看到 Cloud SQL 网页界面,并且假设您使用的项目当前没有任何 Cloud SQL 实例,您将看到一个对话框,提示您创建新的 Cloud SQL 实例。
如果您恰好使用的是已具有一个或多个 Cloud SQL 实例的项目,您只会看到这些实例的列表:
假设您的项目没有 Cloud SQL 实例,请按创建实例按钮进行创建:
如果您使用的是一个已经具有一个或多个 Cloud SQL 实例的项目,请按实例屏幕上的创建实例按钮,如下所示:
无论哪种情况,您现在应该都会看到选择实例类型页面。在此 Codelab 中,我们将创建一个 Cloud SQL 第二代实例。点击选择第二代。
您将转到创建实例页面。您必须在此为实例指定名称。此名称在项目中必须是唯一的,但在多个项目中是唯一的,因此,如果您的项目中没有其他 Cloud SQL 实例,您可以使用本示例中显示的同一实例名称 codelab-0。在实例 ID 框中输入“qulab-0”。在本 Codelab 中,其余配置可以保留默认值。
请注意,删除 Cloud SQL 实例后,您在最长一周的时间内都不能重新使用该实例名称。如果您计划将此项目用于实验以外的目的,请务必选择与实际工作中可能需要使用的所有实例名称均不同的实例名称;否则,您可能会在一段时间内无法重新使用相应的实例名称。
滚动到页面底部,然后按创建。
您将转到实例页面,其中会显示包含微调图标的新实例,该图标表示该实例仍在创建中:
两到三分钟内,该实例即会显示出来,并且绿色对勾标记将替换蓝色旋转图标。请务必不时刷新页面:
您的 Cloud SQL 实例现已可供使用。
点击您的实例名称以打开实例详情页面,然后点击访问权限控制:
在“访问权限控制”标签页上,按用户:
在“用户”标签页中,点击更改 root 密码:
在“更改密码”页面输入新密码,然后按确定:
按 Google Cloud Console 中的提示按钮激活 Google Cloud Shell:
如果这是您第一次为此项目使用 Google Cloud Shell,您将看到 Google Cloud Shell 屏幕。按启动 Cloud Shell
如果您是第一次使用此项目,那么在 Google Cloud Console 屏幕底部按 Start Cloud Shell 后,或者在按“激活 Google Cloud Shell”按钮后(如果之前已使用过),新 Cloud Shell 将显示在 Google Cloud Console 底部。
使用如下所示的 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 语句,如下所示:
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 实例、配置了 root 密码、创建了一个空数据库,并(可选)删除了相应 Cloud SQL 实例。
所学内容
- 通过 Google Cloud Console 创建 Cloud SQL 实例。
- 通过 Google Cloud Console 设置 SQL 根密码。
- 使用 mysql 客户端连接到数据库。
- 通过 mysql 提示符创建新的 MySQL 数据库。
- 删除 Cloud SQL 实例。
了解详情
- 查看 Google Cloud SQL 文档