将工作负载从其他平台迁移到 Cloud SQL for MySQL 通常需要使用 Google Cloud 控制台从您从之前环境中导出的 SQL 转储文件导入数据。
本教程将向您展示如何创建所需的 Google Cloud 资源,然后将 SQL 数据库导入到 Cloud SQL for MySQL 实例。本教程演示了迁移到 Cloud SQL for MySQL 时的最佳实践,包括使用具有专用服务访问通道的 Virtual Private Cloud (VPC) 网络,以及为 Cloud SQL 实例启用专用 IP。
在完成这些步骤的过程中,除非另有说明,否则请保留设置的默认值。
目标
- 下载示例 SQL 转储文件。
- 创建具有专用服务访问权限的新 Virtual Private Cloud 网络。
- 创建一个 Cloud Storage 存储桶,并将 SQL 转储文件上传到该存储分区。
- 创建配置为使用专用 IP 的 Cloud SQL for MySQL 实例。
- 创建用户。
- 从转储文件导入到新数据库。
- 通过查看结构和运行查询来验证数据库是否已成功导入。
费用
在本文档中,您将使用 Google Cloud的以下收费组件:
如需根据您的预计使用量来估算费用,请使用价格计算器。
完成本文档中描述的任务后,您可以通过删除所创建的资源来避免继续计费。如需了解详情,请参阅清理。
准备工作
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
如果您要使用现有项目来完成本指南,请验证您是否拥有完成本指南所需的权限。如果您创建了新项目,则您已拥有所需的权限。
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud SQL, Cloud SQL Admin, Compute Engine, Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
如果您要使用现有项目来完成本指南,请验证您是否拥有完成本指南所需的权限。如果您创建了新项目,则您已拥有所需的权限。
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud SQL, Cloud SQL Admin, Compute Engine, Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Cloud SQL Admin (
roles/cloudsql.admin) -
Storage Admin (
roles/storage.admin) -
Compute Network Admin (
roles/compute.networkAdmin) 在 Google Cloud 控制台中,前往 VPC 网络页面。
点击创建 VPC 网络。
在名称字段中,输入
tutorial-network。对于子网创建模式,选择自定义。
在名称字段中,输入
tutorial-subnet。选择您附近的区域。
对于 IPv4 范围,输入
10.0.0.0/24。对于专用 Google 访问通道,选择开启。
点击完成。
点击页面底部的创建。
- 在“VPC 网络”界面上,点击 tutorial-network。
- 在 tutorial-network 的菜单栏中,点击专用服务访问通道。
- 点击为服务分配的 IP 范围。
- 点击分配 IP 范围。
- 对于名称,请输入
tutorial-range。 - 对于 IP 地址范围,选择自定义。
- 在范围字段中,输入
192.168.0.0/20。 - 点击分配。
- 在子菜单中,点击连到服务的专用连接。
- 点击创建连接。
- 在指定的分配范围下拉菜单中,选择 tutorial-range。
- 点击连接。一两分钟后, Google Cloud 控制台会显示一条消息,告知您已成功创建专用连接。
- 在 Google Cloud 控制台中,转到 Cloud Storage 存储桶页面。
- 点击创建。
- 对于存储桶名称,请创建一个由小写字母、数字和连字符组成的全局唯一名称。您可能需要使用随机字符串生成器(例如 random.org/strings)来生成名称。记下您选择的名称。
- 点击继续。
- 在位置类型下,选择区域。这是费用最低的选项。
- 选择与子网相同的区域。将Google Cloud 资源放置在同一区域中可缩短延迟时间、提高速度、降低数据传输费用并简化网络。
- 点击继续。
- 点击创建。
- 如果系统显示对话框,请保持禁止公开访问此存储桶处于选中状态,然后点击确认。
- 在对象标签页中,点击上传,然后点击上传文件。
- 找到并选择
countries-mysql.sql文件。 - 点击打开。Cloud Storage 会将转储文件上传到相应存储桶。
- 在 Google Cloud 控制台中前往“Cloud SQL 实例”页面。
前往“Cloud SQL 实例”页面 - 点击创建实例。
- 点击选择 MySQL。
- 对于选择 Cloud SQL 版本,选择企业版。
- 对于版本预设,选择沙盒。
- 在实例 ID 部分,输入
tutorial-instance。 - 为默认用户账号选择并输入密码,并保存以备将来使用。
- 选择与子网和存储桶相同的区域。
- 对于可用区级可用性,选择单个可用区。
- 展开显示配置选项。
- 展开连接。
- 清除公共 IP。
- 选择专用 IP。
- 从网络下拉菜单中,选择 tutorial-network。这会将新的 Cloud SQL 实例放置在您之前创建的专用网络中。
- 点击创建实例,然后等待实例初始化并启动。初始化过程可能需要五分钟以上。
- 在 SQL 导航菜单中,点击用户。
- 点击添加用户账号。
- 在打开的窗格中,选择内置身份验证。
- 在用户名字段中,输入
tutorial-user。 - 为新用户输入密码。保存此密码以供将来使用。
- 选择允许任何主机。
- 点击 Add(添加)。
- 在 SQL 导航菜单中,点击概览。
- 在概览页面上,点击导入。
- 在文件格式下,选择 SQL。
- 在选择源文件下,选择从 Google Cloud Storage 中选择文件。
- 点击浏览。
- 展开您之前创建的存储桶。
- 点击 countries-mysql.sql。
- 点击选择。
- 确认目标部分中的数据库字段已选择在 SQL 文件中指定。
- 点击导入。
- 在 SQL 导航菜单中,点击 Cloud SQL Studio。系统会显示一个登录对话框。
- 在数据库下拉列表中,选择 countries。
- 选择内置数据库身份验证。
- 在用户下拉列表中,选择 tutorial-user。
- 在密码字段中,输入您在添加用户部分中为该用户选择的密码。
- 点击身份验证。 系统会打开 Cloud SQL Studio。
- 在探索器窗格中,检查
countries数据库,并确认该数据库包含两个表:capitals和country_codes。 - 点击未命名的查询以打开查询编辑器。
将以下代码粘贴到查询编辑器中:
SELECT `capitals`.`country_capital`, `country_codes`.`country_name` FROM `capitals` JOIN `country_codes` ON `capitals`.`alpha_2_code` = `country_codes`.`alpha_2_code` ORDER BY `capitals`.`country_capital`;点击运行。
- 删除包含这些资源的项目
- 保留项目,但删除各个资源。
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
- 在 SQL 导航菜单中,点击概览。
- 点击修改。
- 展开数据保护部分。
- 在实例防删除保护中,取消选择所有选项。
- 点击保存。操作完成后,删除即可选择。
- 点击删除。随即会出现一个对话框。
- 在实例 ID 字段中,输入
tutorial-instance。 - 点击删除。
- 在主 Google Cloud 控制台导航菜单中,前往 Cloud Storage > 存储分区。
- 选中您之前创建的存储桶的名称旁边的复选框。
- 点击 删除。
- 在对话框中,输入
DELETE以确认删除,然后点击删除。 - 在主导航菜单中,依次前往 VPC 网络 > VPC 网络对等互连。
- 选中 VPC 网络 tutorial-network 的对等互连旁边的方框。
- 点击删除。
- 在对话框中,点击删除进行确认。
- 在 VPC 网络菜单中,点击 VPC 网络。
- 点击 tutorial-network 以打开详情页面。
- 点击 删除 VPC 网络。
- 在对话框中,输入
tutorial-network以确认删除,然后点击删除。 - 导入和导出数据的最佳实践。
- 使用 SQL 转储文件导出和导入。
- VPC 网络
- 探索有关 Google Cloud 的参考架构、图表和最佳做法。查看我们的 Cloud 架构中心。
所需的角色
如需获得完成本教程所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
获取示例数据库转储文件
在本教程中,您将使用一个包含国家/地区代码和世界首都的小型示例数据库。
将 countries 数据库的 SQL 文件下载到本地环境:countries-mysql.sql。
创建具有专用服务访问权限的网络
在创建其余资源之前,请先创建一个 VPC 网络来运行您的服务。借助专用服务访问通道,您可以使用内部 IPv4 地址在外部网络与 Cloud SQL for MySQL 之间建立专用连接,从而限制对 Cloud SQL 数据库的访问。
VPC 网络创建过程完成后,您可以为该网络配置专用服务访问通道。
创建 Cloud Storage 存储桶
接下来,创建一个 Cloud Storage 存储桶来存储您之前下载的 SQL 转储文件。Cloud SQL 导入工具要求转储文件位于存储桶中。Cloud Storage 存储桶必须具有全局唯一的名称。
系统会打开新存储桶的存储桶详情页面,其中“对象”窗格处于选中状态。
将转储文件上传到存储桶
将您之前下载的示例 SQL 转储文件上传到您的存储桶。
创建 Cloud SQL 实例
在 Google Cloud 控制台中使用以下设置创建 Cloud SQL 实例。对于所有其他设置,请保留默认设置。虽然您无需为导入流程启用专用 IP,但最好为生产工作负载使用专用 IP。
添加用户
您必须创建一个不同于根用户的数据库用户,然后才能读取或写入数据库。
从转储文件导入
现在,您可以使用上传到 Cloud Storage 存储桶的 countries-mysql.sql 转储文件导入 countries 数据库了。
导入过程完成后,系统会显示一条成功消息,表明 countries 数据库已导入到 Cloud SQL for MySQL。
验证 Cloud SQL for MySQL 中的已导入数据
导入操作完成后,您可以使用 Cloud SQL Studio 连接到数据库,检查表列表,并针对数据运行测试查询,以验证数据库是否已导入。
向 Cloud SQL Studio 进行身份验证
使用您之前创建的用户账号,通过 Cloud SQL Studio 连接到新数据库。
查看和查询表格
结果窗格会显示世界各国首都及其所在国家/地区的列表(按字母顺序排列)。
清理
为避免因本教程中使用的资源导致您的 Google Cloud 账号产生费用,请执行以下操作之一:
删除项目
删除各个资源
如果您想保留项目但避免产生费用,请删除您在教程中创建的 Cloud SQL 实例、Cloud Storage 存储桶和 VPC 网络。
删除 Cloud SQL 实例
首先,停用防删除保护,然后删除教程 Cloud SQL 实例:
删除 Cloud Storage 存储桶
接下来,删除存储桶及其内容。
删除 VPC 网络
现在,您已删除 VPC 网络中的资源,可以删除该网络了。在删除 VPC 网络之前,您必须删除在创建 VPC 网络时自动创建的对等互连连接。
对等互连连接已移除,现在您可以删除 VPC 网络。