首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

透過圖形介面實現 SQL Server 到 MySQL 資料遷移:DTS 與 phpMyAdmin 實戰教學

     編輯:MySQL 資料庫相關知識

前言

異構資料庫遷移常讓開發者頭痛。本文介紹一種零程式碼、純圖形介面的遷移路徑:SQL Server Enterprise Manager + DTS(Data Transformation Services)匯出文字檔 → phpMyAdmin 匯入 MySQL,適合中小資料量、一次性遷移場景。

前置條件

  • 已安裝 SQL Server Client Tools(Enterprise Manager)。
  • 已部署 phpMyAdmin 並可正常管理目標 MySQL。
  • 網路互通:客戶端能連線 SQL Server 與 MySQL。

階段一:SQL Server DTS 匯出文字檔

  1. 開啟 Enterprise Manager → 註冊/連線目標 SQL Server。
  2. 展開 Data Transformation Services → 右鍵 New Package。
  3. DTS 設計面:Connection 選擇來源資料庫(Microsoft OLE DB Provider for SQL Server),設定認證。
  4. 目的地選擇 Text File (Destination),指定輸出資料夾與檔名(如 export.txt)。
  5. 新增任務 → Transform Data Task,連接來源與目的地圖示。
  6. 任務屬性定義:Source 選資料表/檢視表,Destination 對應文字檔欄位,Transformations 做型別對應(必要時)。
  7. 執行封裝 → 提示成功 → Save Package。
  8. 右鍵封裝 → Export Data → 精靈選擇 Copy tables and views from source database → 完成,資料已寫入文字檔。

階段二:phpMyAdmin 匯入 MySQL

情境 A:目標表尚不存在(結構同步)

  1. phpMyAdmin 建立新資料表,欄位型別、長度、編碼與來源完全一致。
  2. 進入該表 → Import 標籤 → 選擇文字檔 → 格式 CSV 或 CSV using LOAD DATA。
  3. 關鍵設定:
    • Fields terminated by: \t(DTS 預設 Tab 分隔)
    • Fields enclosed by: "
    • Fields escaped by: \
    • Lines terminated by: \n
    • Ignore first line: 否(DTS 不產生標題列)
  4. 點擊 Go → 匯入完成,瀏覽資料驗證。

情境 B:目標表已存在但結構/欄位名不同

  1. 建立暫存表,結構與文字檔完全對應,按情境 A 匯入資料。
  2. phpMyAdmin 對暫存表 → Export → 格式 SQL → 勾選 Data + Structure → 下載 temp.sql。
  3. 用文字編輯器開啟 temp.sql,批次取代:
    • 表名:temp_table → target_table
    • 欄位名:src_col1 → dst_col1 …
  4. 在目標資料庫執行修改後的 SQL 腳本,資料遷移完成。

常見錯誤與排查

現象可能原因對策
匯入 0 筆分隔符/跳過首列設定錯誤用 Notepad++ 檢視原始檔前幾行,核對 phpMyAdmin 設定
資料截斷/亂碼字元集不匹配確認 SQL Server 導出編碼、MySQL 表 CHARSET、phpMyAdmin 連線編碼三者一致(建議全鏈路 UTF-8)
主鍵衝突目標表已有資料先 TRUNCATE 或調整匯入模式(INSERT IGNORE/REPLACE)
大數值溢位型別不匹配暫存表欄位用 BIGINT/TEXT 承接,再轉型

進階替代方案(大數據量/生產環境)

  • SSIS (SQL Server Integration Services): DTS 後繼者,效能更強、支援並行、錯誤處理豐富。
  • MySQL Workbench Migration Wizard: 官方異構遷移工具,支援 Schema 對應、資料類型轉換、增量同步。
  • ETL 工具: Talend、Kettle (Pentaho)、Airbyte,適合定期同步、複雜轉換。
  • CDC 工具: Debezium + Kafka Connect,實現即時異構同步。

結語

DTS + phpMyAdmin 雖屬「古典組合」,但零授權成本、操作視覺化、無需寫代碼,對於百萬筆以內、一次性遷移專案極具性價比。關鍵在於分隔符對齊、編碼統一、暫存表過渡三步走。大數據量或常態化同步請升級至 SSIS/Workbench/CDC 生態。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved