MySQL Workbench 手冊  /  資料庫遷移精靈  /  Microsoft Access 遷移

10.4 Microsoft Access 遷移

注意

此功能已在 MySQL Workbench 6.2.0 中新增。

一般資訊

由於 Microsoft Access ODBC 驅動程式僅適用於 Windows,因此需要 Microsoft Windows。至於目標 MySQL 伺服器,您可以將它放在同一部本機上,或放在網路中的其他位置。

準備 Microsoft Access 資料庫以進行遷移

Microsoft Access 會將關聯/外來索引鍵資訊儲存在名為 MSysRelationships 的內部資料表中。即使是管理員使用者,該資料表也會受到讀取權限的保護,因此如果您在未開啟對其的存取權限的情況下嘗試遷移,則會收到如下的錯誤

[42000] [Microsoft][ODBC Microsoft Access Driver] Record(s) cannot be read; no read permission on 'msysobjects'. (-1907) (SQLExecDirectW)

授予管理員角色讀取權限的步驟(使用 Microsoft Access 2007)摘要如下

  • 在 Microsoft Access 中開啟資料庫

  • 資料庫工具 功能區中,按一下 Visual Basic 以開啟 Visual Basic (VB) 主控台。下圖顯示此按鈕在巨集區域中的位置。

    圖 10.20 找到 Visual Basic 巨集資料庫工具

    Content is described in the surrounding text.

  • 若要確認您是以「管理員」使用者身分登入,請找到 即時 面板並輸入「? CurrentUser」,然後按下 Enter。這應該會在面板中「? CurrentUser」下方輸出「Admin」(請參閱下圖)。

  • 同樣在 即時 面板中,輸入下列命令以授予存取權限

    CurrentProject.Connection.Execute "GRANT SELECT ON MSysRelationships TO Admin"

    圖 10.21 GRANT SELECT ON MSysRelationships TO Admin

    Content is described in the surrounding text.

  • 結束 Microsoft Access 應用程式

啟動 MySQL Workbench 遷移精靈

從主要的 MySQL Workbench 畫面中,您可以按一下 Workbench 側邊面板中的資料庫遷移啟動器(),或按一下主要選單中的 資料庫,然後按一下 遷移精靈 來啟動遷移精靈。如下圖所示,會顯示一個新標籤,其中顯示遷移精靈的「概述」頁面。

圖 10.22 遷移概述頁面

Content is described in the surrounding text.

設定 ODBC 驅動程式

若要驗證您已安裝 ODBC 驅動程式,請從 MySQL Workbench 遷移概述頁面按一下 開啟 ODBC 管理員,以開啟系統 ODBC 工具。然後,選取 驅動程式 標籤(請參閱下圖)。

圖 10.23 檢查 Access 支援的 ODBC 驅動程式

Content is described in the surrounding text.

重要事項

MySQL Workbench 具有 64 位元可執行檔。您使用的 ODBC 驅動程式必須與您正在使用的 MySQL Workbench 二進位檔具有相同的架構。如果在遷移期間收到有關「驅動程式和應用程式之間的架構不符」的 ODBC 錯誤,則表示您安裝了錯誤版本的 MySQL Workbench。

使用者 DSN 標籤中,按一下 新增 以建立資料庫檔案的 DSN。如下圖所示,已為 northwind 資料庫範例建立新的資料來源。

圖 10.24 新增 DSN

Content is described in the surrounding text.

設定來源參數

從「概述」頁面按一下 開始遷移 以進入 來源選取 頁面。在這裡,您需要提供有關您要從其遷移的 Access 資料庫、要使用的 ODBC 驅動程式,以及 Access 連線的參數資訊。

開啟 資料庫系統 組合方塊,以取得支援的 RDBMS 清單,並從清單中選取 Microsoft Access。其下方還有另一個名為 已儲存連線 的組合方塊。它會列出該 RDBMS 的已儲存連線設定。您可以勾選頁面底部的核取方塊,以及已儲存連線的名稱來儲存連線。

下一個組合方塊會選取 連線方法。這次我們將從清單中選取 ODBC 資料來源。這可讓您選取您已在系統中設定的現有 DSN。

DSN 下拉式清單將會顯示您已在系統中定義的所有 DSN。從清單中挑選您為要從其遷移的 Access 資料庫建立的 DSN。

預設字元集 欄位中,您可以選取資料庫的字元集(請參閱下圖)。如果您的 Access 版本使用西方/拉丁字元,則可以保留預設的 cp1252。但是,如果您使用當地語系化版本的 Access,例如日文,則必須輸入您的 Microsoft Office 版本所使用的正確字元集,否則會錯誤地複製資料。

圖 10.25 Access 來源選取

Content is described in the surrounding text.

最後,按一下 測試連線 以檢查是否可以建立 ODBC 連線。如果您輸入了正確的參數,則應該會看到一則訊息,指出連線嘗試成功。

設定目標參數

接下來,透過定義連線至您的 MySQL 伺服器執行個體的參數來設定目標 (MySQL) 資料庫參數。完成後,按一下 測試連線 以驗證連線定義。下圖顯示 參數 標籤。

圖 10.26 目標資料庫選取

Content is described in the surrounding text.

選取要遷移的物件

接下來,您應該會看到選取資料庫物件的反向工程進度。此時,遷移精靈會擷取有關所涉及資料庫物件的相關資訊(例如資料表名稱、資料表欄、主要索引鍵和外來索引鍵、索引、觸發程序、檢視表等等)。您會看到一個頁面,其中顯示進度,如下圖所示。

圖 10.27 反向工程來源

Content is described in the surrounding text.

等待它完成並驗證一切順利。接下來,來源物件 會顯示一個清單,其中包含已擷取且可用於遷移的物件。它看起來會與下圖類似。

圖 10.28 來源物件

Content is described in the surrounding text.

在先前的範例中,遷移精靈已為我們的來源資料庫探索到資料表和檢視物件。預設只會選取資料表物件進行遷移。

注意

您也可以選取檢視物件,但是您稍後也必須提供其對應的 MySQL 等效程式碼(沒有可用的自動遷移),因此我們的範例會將檢視保持未勾選狀態。這也適用於預存程序、函數和觸發程序。

按一下 顯示選取,以設定您要遷移的確切物件,如下圖所示。

圖 10.29 來源物件選取

Content is described in the surrounding text.

右邊的物件會被遷移。篩選方塊可以篩選清單(允許使用萬用字元,如上所示)。透過使用箭頭按鈕,您可以篩選掉您不想遷移的物件。在繼續之前,清除篩選文字方塊以檢查選取物件的完整清單。我們的範例會遷移所有的資料表物件,因此所有的物件都在 要遷移的物件 清單中,而且已勾選 遷移資料表物件 核取方塊。

檢閱建議的遷移

此時,遷移精靈會將選取的物件轉換為目標 MySQL 伺服器中的對應物件,並產生建立這些物件所需的 MySQL 程式碼。您可能需要等待一段時間,才會顯示下圖所示的 手動編輯步驟初始頁面。

圖 10.30 手動編輯:初始頁面

Content is described in the surrounding text.

檢視下拉式方塊會變更遷移的資料庫物件的顯示方式(請參閱下圖)。按一下顯示程式碼以檢視並編輯與選取物件對應的產生 MySQL 程式碼。此外,您可以雙擊物件樹狀結構中的列來編輯物件名稱,或雙擊資料庫列來變更其名稱。

圖 10.31 手動編輯:所有物件

Content is described in the surrounding text.

檢視下拉式方塊還有一個欄位對應選項。如下圖所示,它會顯示資料表欄位,並允許您檢閱和修正欄位類型、預設值和其他屬性的對應。

圖 10.32 手動編輯:欄位對應

Content is described in the surrounding text.

建立資料庫物件

接下來是目標建立選項頁面,如下圖所示。

圖 10.33 目標建立選項

Content is described in the surrounding text.

使用目標建立選項,在目標 RDBMS(第二步驟中的 MySQL 執行個體)中執行產生的程式碼,或者您可以將其轉儲到 SQL 指令碼檔案中。將其保留為上圖所示,並移至下一頁。遷移的 SQL 程式碼將在目標 MySQL 伺服器上執行。您可以在下圖所示的建立結構描述頁面中檢視其進度。

圖 10.34 建立結構描述

Content is described in the surrounding text.

當結構描述和物件的建立完成時,您可以移至建立目標結果頁面。它會顯示已建立物件的清單,並包含在建立時產生的任何錯誤。它會與下圖類似。

圖 10.35 建立目標結果

Content is described in the surrounding text.

您可以使用右側的程式碼方塊編輯遷移程式碼,並按一下套用來儲存您的變更。如果進行了編輯,您仍然需要使用修改後的程式碼重新建立物件,才能執行變更。這是透過按一下重新建立物件來完成的。在本教學課程中,我們不會變更任何內容,因此請將程式碼保留原樣,然後繼續前往資料傳輸設定頁面。

將資料傳輸到 MySQL 資料庫

下一步是將資料從來源 Access 資料庫傳輸到您新建立的目標 MySQL 資料庫。資料傳輸設定頁面允許您設定此程序(請參閱下圖)。

圖 10.36 資料傳輸設定

Content is described in the surrounding text.

這裡有兩組選項。第一組允許您執行即時傳輸和/或將資料轉儲到您可以稍後執行的批次檔案中。另一組選項允許您變更此程序。

本教學課程使用此頁面中選項的預設值,如上圖所示。接下來,將會傳輸資料。此時,對應的進度頁面會確認正在執行的任務(請參閱下圖)。

圖 10.37 大量資料傳輸

Content is described in the surrounding text.

完成後,請移至下一頁。您將看到一個彙總整個過程的報告頁面。現在,請檢閱並按一下完成以關閉精靈。

驗證

現在已成功遷移 northwind 資料庫,您可以檢視結果。開啟與您的 MySQL 伺服器執行個體相關聯的 SQL 編輯器,然後查詢 northwind 資料庫。例如,執行類似 SELECT * FROM northwind.customers 的查詢,它會填入結果方格,如下圖所示。

圖 10.38 驗證您的結果

Content is described in the surrounding text.