設定來源 MySQL 資料庫,以便單次遷移資料

本頁面說明如何設定下列來源資料庫執行個體,以便執行一次性同質 MySQL 遷移作業:

設定 MySQL 適用的 Cloud SQL 來源

如要為遷移程序設定 MySQL 適用的 Cloud SQL 來源執行個體,請按照下列步驟操作:

  1. 檢查來源資料庫是否包含使用者透過 DEFINER 子句定義的中繼資料。請參閱「 使用 DEFINER 子句驗證中繼資料」一節。

    資料庫遷移服務不支援同質 MySQL 遷移作業,無法遷移使用者帳戶和登入資訊。如果來源包含由使用者帳戶定義的中繼資料,且含有 DEFINER 子句,可能會導致遷移作業遭到封鎖。

  2. 如果來源資料庫包含參照 mysql、performance_schema、information_schema、ndbinfo 或 sys 系統結構定義中資料表的物件,請確保副本資料庫也包含這些系統結構定義資料表。

    如果副本資料庫沒有這些資料表,遷移工作可能會失敗,並顯示 Unknown table in system schema 。

  3. 在執行個體中建立專用的遷移使用者帳戶。 請參閱 Cloud SQL 說明文件中的「 建立使用者」一節。請確認:

    • 您允許專屬使用者帳戶從任何主機連線 (host=%)。
    • 帳戶密碼長度不超過 32 個半形字元。 如要進一步瞭解 MySQL 使用者密碼長度限制,請參閱 MySQL 錯誤 #43439。
  4. 將必要權限指派給專用的遷移使用者帳戶。 如果是一次性遷移,所需權限的完整清單取決於您是否提供自己的 dump 檔案,或使用資料庫遷移服務代管的 dump 功能:

    受管理傾印

    如要讓資料庫遷移服務自動完整傾印來源資料庫,請為使用者帳戶指派下列權限:

    手動轉儲

    如果您提供 使用 mysqldump 建立的傾印檔案, 則不需要為使用者帳戶指派任何額外權限。

設定自行託管的 MySQL 來源

如要為遷移程序設定自行代管的 MySQL 來源執行個體,請按照下列步驟操作:

  1. 確認所有資料表 (系統資料庫中的資料表除外) 都使用 InnoDB 儲存引擎。如果使用其他儲存引擎,可能需要轉換資料表。 詳情請參閱「 將資料表從 MyISAM 轉換為 InnoDB」。
  2. 檢查來源資料庫是否包含使用者以 DEFINER 子句定義的中繼資料。請參閱 使用 DEFINER 子句驗證中繼資料。

    資料庫遷移服務不支援同質 MySQL 遷移作業,無法遷移使用者帳戶和登入資訊。如果來源含有使用者帳戶定義的元資料,且附有 DEFINER 子句,可能會導致遷移作業遭到封鎖。

  3. 如果來源資料庫包含參照 mysql、performance_schema、information_schema、ndbinfo 或 sys 系統結構定義中資料表的物件,請確保副本資料庫也包含這些系統結構定義資料表。

    如果副本資料庫沒有這些資料表,遷移工作可能會失敗,並顯示 Unknown table in system schema 。

  4. 確認 GTID_MODE 已設為 ON 或 OFF,不支援其他值。

    在下列情況下,資料庫遷移服務需要將 GTID_MODE 設為 ON:

    如要進一步瞭解 GTID_MODE,請參閱「 全域交易 ID 系統變數」。

  5. 在執行個體建立專用的遷移使用者帳戶。 請參閱 帳戶管理聲明。請確認下列事項:

    • 您允許專屬使用者帳戶從任何主機連線 (host=%)。
    • 帳戶密碼長度不超過 32 個半形字元。 如要進一步瞭解 MySQL 使用者密碼長度限制,請參閱 MySQL Bug #43439。
  6. 將必要權限指派給專用的遷移使用者帳戶。 如果是一次性遷移,所需權限的完整清單取決於您是否提供自己的 dump 檔案,或使用資料庫遷移服務代管的 dump 功能:

    受管理傾印

    如要讓資料庫遷移服務自動完整傾印來源資料庫,請為使用者帳戶指派下列權限:

    • SELECT
    • SHOW VIEW
    • TRIGGER
    • 如果來源設有 GTID_MODE = ON 設定: RELOAD

      使用代管轉儲流程時,只有在 遷移至已啟用唯讀副本的現有目的地執行個體時,資料庫遷移服務才需要 GTID_MODE = ON 設定。

    • MySQL 來源版本為 8.0 以上:確認遷移帳戶沒有 BACKUP_ADMIN 權限。

    手動傾印

    如果您提供的是 使用 mysqldump 建立的 dump 檔案,則不必為使用者帳戶指派任何額外權限。

設定 Amazon RDS for MySQL 來源

如要為遷移程序設定 Amazon RDS for MySQL 來源執行個體,請按照下列步驟操作:

  1. Amazon RDS for MySQL 預設使用 InnoDB 儲存引擎,但允許使用其他儲存引擎。確認所有資料表 (系統資料庫中的資料表除外) 都使用 InnoDB 儲存引擎。如果使用其他儲存空間引擎,可能需要轉換資料表。 詳情請參閱「 將資料表從 MyISAM 轉換為 InnoDB」。
  2. 檢查來源資料庫是否包含使用者以 DEFINER 子句定義的中繼資料。請參閱「 使用 DEFINER 子句驗證中繼資料」一節。

    資料庫遷移服務不支援同質 MySQL 遷移作業,無法遷移使用者帳戶和登入資訊。如果來源含有使用者帳戶定義的元資料,且附有 DEFINER 子句,可能會導致遷移作業遭到封鎖。

  3. 如果來源資料庫包含參照 mysql、performance_schema、information_schema、ndbinfo 或 sys 系統結構定義中資料表的物件,請確保副本資料庫也包含這些系統結構定義資料表。

    如果副本資料庫沒有這些資料表,遷移工作可能會失敗,並顯示 Unknown table in system schema 。

  4. 確認 GTID_MODE 已設為 ON 或 OFF,不支援其他值。MySQL 適用的 Amazon RDS 預設使用 GTID_MODE = OFF。

    在下列情況下,資料庫遷移服務需要將 GTID_MODE 設為 ON:

    如要進一步瞭解 GTID_MODE,請參閱「 全域交易 ID 系統變數」。

  5. 在執行個體建立專用的遷移使用者帳戶。 請參閱「 帳戶管理聲明」。請確認:

    • 您允許專屬使用者帳戶從任何主機連線 (host=%)。
    • 帳戶密碼長度不超過 32 個半形字元。 如要進一步瞭解 MySQL 使用者密碼長度限制,請參閱 MySQL Bug #43439。
  6. 將必要權限指派給專用的遷移使用者帳戶。 如果是單次遷移,所需權限的完整清單取決於您是否提供自己的 dump 檔案,或是使用資料庫遷移服務管理 dump 功能:

    受管理傾印

    如要讓資料庫遷移服務自動完整傾印來源資料庫,請為使用者帳戶指派下列權限:

    手動傾印

    如果您提供使用 mysqldump 建立的傾印檔案,則不需要為使用者帳戶指派任何額外權限。

設定 MySQL 適用的 Amazon Aurora 來源

如要為遷移程序設定 MySQL 適用的 Amazon Aurora 來源執行個體,請按照下列步驟操作:

  1. 檢查來源資料庫是否包含使用者以 DEFINER 子句定義的中繼資料。請參閱 使用 DEFINER 子句驗證中繼資料。

    同質 MySQL 遷移適用的資料庫遷移服務不會遷移使用者帳戶和登入資訊。如果來源包含由使用者帳戶定義的中繼資料,且含有 DEFINER 子句,可能會導致遷移作業遭到封鎖。

  2. 如果來源資料庫包含參照 mysql、performance_schema、information_schema、ndbinfo 或 sys 系統結構定義中資料表的物件,請確保副本資料庫也包含這些系統結構定義資料表。

    如果副本資料庫沒有這些資料表,遷移工作可能會失敗,並顯示 Unknown table in system schema 。

  3. 確認 GTID_MODE 已設為 ON 或 OFF,不支援其他值。MySQL 適用的 Amazon Aurora 預設使用 GTID_MODE = OFF。

    在下列情況下,資料庫遷移服務需要將 GTID_MODE 設為 ON:

    如要進一步瞭解 GTID_MODE,請參閱「 全域交易 ID 系統變數」。

  4. 在執行個體中建立專用的遷移使用者帳戶。 請參閱 帳戶管理聲明。請確認下列事項:

    • 您允許專屬使用者帳戶從任何主機連線 (host=%)。
    • 帳戶密碼長度不超過 32 個半形字元。 如要進一步瞭解 MySQL 使用者密碼長度限制,請參閱 MySQL 錯誤 #43439。
  5. 將必要權限指派給專用的遷移使用者帳戶。 如果是一次性遷移,所需權限的完整清單取決於您是否提供自己的 dump 檔案,或使用資料庫遷移服務代管的 dump 功能:

    受管理傾印

    如要讓資料庫遷移服務自動完整傾印來源資料庫,請為使用者帳戶指派下列權限:

    • SELECT
    • SHOW VIEW
    • TRIGGER
    • LOCK TABLES
    • 如果來源設有 GTID_MODE = ON 設定: RELOAD

      使用代管傾印流程時,只有在遷移至已啟用唯讀副本的現有目的地執行個體GTID_MODE = ON時,資料庫移轉服務才需要這項設定。

    • MySQL 來源版本為 8.0 以上:確認遷移帳戶沒有 BACKUP_ADMIN 權限。

    手動轉儲

    如果您提供使用 mysqldump 建立的傾印檔案,則不需要為使用者帳戶指派任何額外權限。

設定 Microsoft Azure Database for MySQL 來源

如要為遷移程序設定 Microsoft Azure Database for MySQL 來源執行個體,請按照下列步驟操作:

  1. 檢查來源資料庫是否包含使用者透過 DEFINER 子句定義的中繼資料。請參閱「 使用 DEFINER 子句驗證中繼資料」一節。

    資料庫遷移服務不支援同質 MySQL 遷移作業,無法遷移使用者帳戶和登入資訊。如果來源含有使用者帳戶定義的元資料,且附有 DEFINER 子句,可能會導致遷移作業遭到封鎖。

  2. 如果來源資料庫包含參照 mysql、performance_schema、information_schema、ndbinfo 或 sys 系統結構定義中資料表的物件,請確保副本資料庫也包含這些系統結構定義資料表。

    如果副本資料庫沒有這些資料表,遷移工作可能會失敗,並顯示 Unknown table in system schema 。

  3. 確認 GTID_MODE 已設為 ON 或 OFF,不支援其他值。Microsoft Azure Database for MySQL 預設使用 GTID_MODE = OFF。

    在下列情況下,資料庫遷移服務需要將 GTID_MODE 設為 ON:

    如要進一步瞭解 GTID_MODE,請參閱「 全域交易 ID 系統變數」。

  4. 檢查 require_secure_transport 設定的值。

    根據預設,Microsoft Azure 資料庫會要求所有傳入連線使用 SSL/TLS 加密。建立來源連線設定檔時,請根據 require_secure_transport 值使用下列其中一項加密設定:

    • 如果 require_secure_transport 設為 on,請選取「Basic」(基本)、「TLS」(傳輸層安全標準) 或「mTLS」(相互傳輸層安全標準)。
    • 如果 require_secure_transport 設為 off,請選取「無」。
  5. 在執行個體建立專用的遷移使用者帳戶。 請參閱 帳戶管理聲明。請確認下列事項:

    • 您允許專屬使用者帳戶從任何主機連線 (host=%)。
    • 帳戶密碼長度不超過 32 個半形字元。 如要進一步瞭解 MySQL 使用者密碼長度限制,請參閱 MySQL 錯誤 #43439。
  6. 將必要權限指派給專用的遷移使用者帳戶。 如果是一次性遷移,所需權限的完整清單取決於您是否提供自己的 dump 檔案,或使用資料庫遷移服務代管的 dump 功能:

    受管理傾印

    如要讓資料庫遷移服務自動完整傾印來源資料庫,請將下列權限指派給使用者帳戶:

    • SELECT
    • SHOW VIEW
    • TRIGGER
    • 來源採用 GTID_MODE = ON 設定: RELOAD

      使用代管傾印流程時,只有在遷移至已啟用唯讀副本的現有目的地執行個體GTID_MODE = ON時,資料庫移轉服務才需要這項設定。

    • MySQL 來源版本為 8.0 以上:確認遷移帳戶沒有 BACKUP_ADMIN 權限。

    手動傾印

    如果您提供的是 使用 mysqldump 建立的 dump 檔案,則不必為使用者帳戶指派任何額外權限。

後續步驟

如要瞭解 MySQL 適用的 Cloud SQL 同質遷移作業的完整逐步操作說明,請參閱「 開始使用 MySQL 適用的 Cloud SQL 遷移作業」。