准备工作
- 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
- 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
- 在屏幕左上角,点击开始实验即可开始
Update DEFINER clauses to INVOKER on the MySQL source instance.
/ 10
Create and save a Database Migration Service job without starting the job.
/ 20
Create users on the Cloud SQL destination instance.
/ 10
Start a previously created Database Migration Service job.
/ 10
Confirm the user metadata in Cloud SQL for MySQL
/ 10
資料庫遷移服務可將結構定義、資料和中繼資料等 MySQL 資料庫物件,有效率地從來源遷移至目的地執行個體。執行遷移工作時,所有資料庫和結構定義中的資料表會全部移動,但下列系統資料庫除外:sys、mysql、performance_schema 和 information_schema。
使用者和權限的相關資訊會保留在 MySQL 系統資料庫內。資料庫遷移服務工作不會轉移這些系統資料庫,因此建立目的地 Cloud SQL 執行個體後,需要在執行個體中管理使用者和權限。如要詳細瞭解遷移作業準確度,請參閱「遷移作業準確度」指南。
如果物件的 DEFINER 子句中指定的使用者沒有在目的地執行個體中,物件在遷移後可能無法叫用。詳情請參閱「建立並執行含有 DEFINER 子句的中繼資料 MySQL 遷移工作」指南。
為防止遷移後在目的地執行個體叫用物件時出錯,請在執行遷移工作前,完成下列兩項操作之一:
DEFINER 子句相關聯的所有使用者都存在於目的地中。DEFINER 子句變更為 INVOKER,這會將目的地的資料存取安全權限設為執行查詢的使用者權限,而非定義物件的使用者權限。滿足這些必要條件後,請建立並儲存資料庫遷移服務工作,然後啟動已儲存的工作。遷移作業順利完成後,最後一個步驟是驗證 MySQL 適用的 Cloud SQL 執行個體上的使用者中繼資料。
在本實驗室中,您會學會如何在執行資料庫遷移服務工作時轉移 MySQL 使用者資料:
DEFINER 子句更新為 INVOKER。請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。
您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。
為了順利完成這個實驗室,請先確認:
點選「Start Lab」按鈕。如果實驗室會產生費用,畫面上會出現選擇付款方式的對話方塊。左側的「Lab Details」窗格會顯示下列項目:
點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」。
接著,實驗室會啟動相關資源,並開啟另一個分頁,顯示「登入」頁面。
提示:您可以在不同的視窗中並排開啟分頁。
如有必要,請將下方的 Username 貼到「登入」對話方塊。
您也可以在「Lab Details」窗格找到 Username。
點選「下一步」。
複製下方的 Password,並貼到「歡迎使用」對話方塊。
您也可以在「Lab Details」窗格找到 Password。
點選「下一步」。
按過後續的所有頁面:
Google Cloud 控制台稍後會在這個分頁開啟。
Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。
點按 Google Cloud 控制台頂端的「啟用 Cloud Shell」圖示 。
系統顯示視窗時,請按照下列步驟操作:
連線建立完成即代表已通過驗證,而且專案已設為您的 Project_ID:
gcloud 是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵自動完成功能。
輸出內容:
輸出內容:
gcloud 的完整說明,請前往 Google Cloud 參閱 gcloud CLI 總覽指南。
前往 Google Cloud 控制台,在標題列的「搜尋」欄位輸入 Database Migration API,然後點選搜尋結果中的「Database Migration API」。
請視需要點選「啟用」來啟用 API。
與其他 Cloud 資源類似,目的地 Cloud SQL 執行個體的存取權和權限,都是在專案層級使用 Identity and Access Management (IAM) 控制。詳情請參閱「Cloud SQL 適用的 IAM」指南。
在這項工作中,您要找出透過資料庫存取控管管理的資料庫使用者,例如管理員和超級使用者。不同於與透過 IAM 管理的使用者,這些使用者可能需要存取目的地 Cloud SQL 執行個體,才能在授予更廣泛的 IAM 存取權之前測試遷移工作結果。詳情請參閱「關於 MySQL 使用者」指南。
前往 Google Cloud 控制台,依序點選標題列的「導覽選單」圖示 >「Compute Engine」>「VM 執行個體」。
找出 dms-mysql-training-vm 執行個體所在的那一行。
在「連線」部分點選「SSH」,開啟終端機視窗。
如果出現提示訊息,請點選「授權」。
您可以忽略 SSH 視窗中顯示的任何升級警告。
請注意系統使用者 debian-sys-maint、mysql.session 和 mysql.sys。這些使用者不需要重新建立,因為建立目的地執行個體後,會由 MySQL 自動產生。
| 主機 | 使用者 |
|---|---|
| localhost | admin |
| % | admin |
| localhost | bsmith |
| localhost | dwilliams |
| localhost | mhill |
| localhost | root |
| % | root |
在後續工作中,您會在執行資料庫遷移服務工作時建立超級使用者。您也會在遷移作業建立 Cloud SQL 目的地執行個體後,新增其他使用者。
在上一項工作,您已找出來源執行個體中的現有 MySQL 使用者。在這項工作中,您要找出並更新資料庫物件,這些物件的 DEFINER 項目是 root,或其他尚未存在於目的地執行個體的使用者。
如果未在目的地執行個體中建立來源執行個體中的使用者,所有相關聯的 DEFINER 項目都必須變更為 INVOKER。具體來說,您應透過管理員等其他使用者,將超級使用者的所有 DEFINER 項目更新為 INVOKER。
執行此動作,可避免在遷移後於目的地執行個體叫用物件時失敗。詳情請參閱「建立並執行包含 DEFINER 子句中繼資料的 MySQL 遷移工作」指南中的其他說明文件。
如要取得 MySQL 執行個體中有關 DEFINER 的資訊,您可以查詢 INFORMATION_SCHEMA 資料表,找出需要先檢查再遷移的 DEFINER 項目,例如未與 mysql 等系統資料庫建立關聯,因此會移至目的地執行個體的 DEFINER 項目。
DEFINER 項目:結果顯示您需要檢查事件、處理常式、觸發條件和檢視表中的 DEFINER 項目。
請注意,部分 DEFINER 項目可能與系統使用者相關聯,不需要採取額外動作。查詢時,系統會排除這些使用者,以便找出各種資料庫物件的 DEFINER 項目。
DEFINER:在與非系統使用者相關聯的事件中,沒有 DEFINER 項目。
DEFINER:在與非系統使用者相關聯的處理常式中,沒有 DEFINER 項目。
DEFINER:在與非系統使用者相關聯的觸發條件中,沒有 DEFINER 項目。
DEFINER:| definer | security_type | table_schema | table_name |
|---|---|---|---|
| admin@localhost | DEFINER |
customers_data | customers_single |
| admin@localhost | DEFINER |
sales_data | invoices_storenum_5173 |
| bsmith@localhost | DEFINER |
customers_data | customers_married |
| bsmith@localhost | DEFINER |
sales_data | invoices_storenum_3980 |
| mhill@localhost | DEFINER |
sales_data | invoices_storenum_3656 |
在下一節中,您會將這個檢視表中的 DEFINER 更新為 INVOKER。
請注意,先前找出的其中一位使用者 dwilliams,與檢視表中的 DEFINER 項目都沒有關聯。也請留意,超級使用者沒有 DEFINER 項目。dwilliams 和超級使用者都不需要任何操作。
在這項子工作中,您要將與 mhill 相關聯的 DEFINER 項目更新為 INVOKER。
DEFINER 更新為 INVOKER:DEFINER 項目,確認檢視表中已更新為 INVOKER:請注意,與 mhill 相關聯的 DEFINER 項目已更新為 INVOKER,而與 admin 和 bsmith 相關聯的 DEFINER 項目維持不變。
點選「Check my progress」,確認目標已達成。DEFINER 子句更新為 INVOKER。
在這項工作,您會建立並儲存遷移作業,但不會啟動。具體來說,您將使用虛擬私有雲對接做為連線選項,建立一次性遷移工作,不過建立遷移作業後可以先儲存,稍後再執行。
這樣一來,您就能建立目的地 Cloud SQL 執行個體,且在完成必要工作 (例如在目的地執行個體建立新使用者) 之前,暫緩遷移資料。
前往 Google Cloud 控制台的「導覽選單」,依序點選「Compute Engine」>「VM 執行個體」。
找出 dms-mysql-training-vm 執行個體所在的那一行。
複製內部 IP 的值,例如 10.128.0.2。
在控制台標題列的「搜尋」欄位輸入資料庫遷移,然後點選搜尋結果中的「資料庫遷移」。
按一下左側窗格中的「連線設定檔」,然後按一下「建立設定檔」。
設定以下必要連線設定檔資訊,其他設定請保留預設值:
| 屬性 | 值 |
|---|---|
| 設定檔角色 | 來源 |
| 資料庫引擎 | MySQL |
| 連線設定檔名稱 | mysql-vm |
| 「連線設定檔 ID」 | 保留自動產生的值 |
| 「主機名稱或 IP 位址」 | 輸入上一項工作中複製的 MySQL 來源執行個體內部 IP,例如 10.128.0.2 |
| 「通訊埠」 | 3306 |
| 「使用者名稱」 | admin |
| 「密碼」 | changeme! |
| 區域 |
連線設定檔清單中會顯示新的連線設定檔 mysql-vm。
在左側窗格中,依序點選「遷移工作」和「建立遷移工作」。
在「建立遷移工作」的「開始」分頁,設定下列值:
| 屬性 | 值 |
|---|---|
| 「遷移工作名稱」 | vm-to-cloudsql |
| 「遷移工作 ID」 | 保留自動產生的值 |
| 「來源資料庫引擎」 | MySQL |
| 「目標區域」 | |
| 「遷移工作類型」 | 一次性 |
其他設定保留預設值。
在「定義來源」分頁的「來源連線設定檔」部分,選取「mysql-vm」。
其他設定保留預設值。
按一下「儲存並繼續」。
在「定義目的地」分頁的「目的地叢集類型」部分,選取「現有的執行個體」。
在「目的地執行個體」部分,選取「
按一下「選取並繼續」。
再次輸入執行個體名稱,然後按一下「確認並繼續」。
注意:這個步驟可能需要幾分鐘才能完成。
如果系統要求重試,請點選「重試」按鈕重新整理 Service Networking API。
如果收到錯誤訊息,但未提示重試,請務必完成實驗室「設定和需求」一節中的步驟,確認已啟用 Service Networking API。
完成這個步驟後,畫面會顯示更新訊息,通知this instance will use the existing managed service connection (執行個體將使用現有代管服務連線)。
系統可能需要幾分鐘才能儲存目的地。
在「定義連線方式」分頁的「連線方式」部分,選取「虛擬私有雲對接」。
在「虛擬私有雲」部分,選取「預設」。
資料庫遷移服務會依據虛擬私有雲網路 (這個範例中的預設網路) 資訊,設定虛擬私有雲對接。
查看遷移工作的詳細資料。
點選「建立工作」。
您不需要測試遷移工作。請注意,與使用者相關聯的 DEFINER 項目尚未在目的地執行個體建立,因此現在測試會傳回錯誤訊息。您會在下一項工作建立這些使用者。
遷移工作已建立,但尚未啟動。在後續工作,您會先在 Cloud SQL 目的地執行個體建立新使用者,然後才啟動工作。
點選「Check my progress」,確認目標已達成。
在 Cloud SQL 中執行遷移工作前,請先建立必要的 MySQL 使用者,包括管理員和超級使用者,以便在透過 IAM 授予更廣泛的存取權之前測試遷移結果。此外,您必須先建立與 DEFINER 子句相關聯的使用者,才能開始遷移。
在這項工作中,您會建立 admin、bsmith 和 mhill 使用者。
前往 Google Cloud 控制台,在標題列的「搜尋」欄位輸入 Cloud SQL,然後點選搜尋結果中的「Cloud SQL」。
展開「mysql-cloudsql-master」執行個體,然後點選「mysql-cloudsql」執行個體。
點選「副本執行個體」選單中的「使用者」。
點選「新增使用者帳戶」。
設定下表中的屬性,其餘屬性請保留預設值:
| 屬性 | 值 |
|---|---|
| 使用者名稱 | admin |
| 「密碼」 | changeme! |
| 主機名稱 | 依 IP 位址或位址範圍限制主機 |
| 主機 | localhost |
按一下「新增」。
重複步驟 4 至 6,再建立兩位可存取 localhost 的使用者:
| 使用者 | 密碼 |
|---|---|
| bsmith | mustchangeasap! |
| mhill | update! |
點選「Check my progress」,確認目標已達成。
前往 Google Cloud 控制台,在標題列的「搜尋」欄位輸入資料庫遷移,然後點選搜尋結果中的「資料庫遷移」。> 遷移工作**。
在左窗格中,按一下「遷移工作」**,然後點選遷移工作 vm-to-cloudsql,查看詳細資料頁面。
點選「啟動」按鈕,執行遷移工作。
如果系統提示您確認操作,請點選「啟動」。
點選「Check my progress」,確認目標已達成。
前往 Google Cloud 控制台,在標題列的「搜尋」欄位輸入 Cloud SQL,然後點選搜尋結果中的「Cloud SQL」。
按一下 mysql-cloudsql 這個執行個體 ID。
從「主要執行個體」選單點選「總覽」。
向下捲動到「連線至這個執行個體」面板,然後點選「開啟 Cloud Shell」。
Cloud Shell 會預先填入連線至 MySQL 的指令:
如果系統提示您為 API 授權,請點選「授權」。
您已成功啟用 MySQL 互動式控制台。
請注意您在上一項工作中建立的使用者。
| definer | security_type | table_schema | table_name |
|---|---|---|---|
| admin@localhost | DEFINER |
customers_data | customers_single |
| admin@localhost | DEFINER |
sales_data | invoices_storenum_5173 |
| bsmith@localhost | DEFINER |
customers_data | customers_married |
| bsmith@localhost | DEFINER |
sales_data | invoices_storenum_3980 |
| mhill@localhost | INVOKER |
sales_data | invoices_storenum_3656 |
這項查詢會傳回 27 個資料列。
點選「Check my progress」,確認目標已達成。
您已瞭解如何在執行資料庫遷移服務工作時,轉移 MySQL 使用者資料。
進一步瞭解資料遷移、Cloud SQL 資料庫和資料庫遷移服務:
協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。
使用手冊上次更新日期:2025 年 12 月 4 日
實驗室上次測試日期:2025 年 12 月 10 日
Copyright 2026 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
一次一个实验
确认结束所有现有实验并开始此实验