利用 MySQL ODBC 驅動實現 SQL Server 7 與 MySQL 雙向遷移
在 Windows NT 環境下,配合 MySQL ODBC 驅動,可透過 SQL Server 7 內建的 DTS(Data Transformation Services)精靈,實現兩種資料庫的雙向資料轉換。本文記錄完整操作步驟與常見問題處理。
前置準備
- 下載安裝 MySQL ODBC 驅動(官網或本站下載)
- 建立系統 DSN: 名稱如
testMySQL,填寫 IP、Database、用戶名、密碼
SQL Server 7 → MySQL 遷移步驟
- 打開 SQL Server 企業管理器 (MMC)
- 右鍵來源資料庫 → 所有任務 → 匯出資料
- DTS 導出精靈啟動:
- 資料來源: Microsoft OLE DB Provider for SQL Server
- 伺服器:你的 SQL Server 7 主機
- 認證:Windows 驗證或 SQL Server 驗證
- 資料庫:如
mynews
- 目的地: 選擇 MySQL → 使用者/系統 DSN → 選
testMySQL
- 複製方式: 「從來源資料庫複製表」
- 選擇表: 全選或勾選需遷移的表
- 立即執行: 下一步 → 完成,開始轉換
MySQL → SQL Server 7 反向遷移
將上述「來源」與「目的地」對調即可,操作邏輯完全對稱。
常見失敗原因與排查
| 現象 | 可能原因 | 解決方案 |
| 部分表遷移失敗 | SQL Server 7 特有資料類型(如 uniqueidentifier、sql_variant)無對應 MySQL 類型 | 雙擊失敗表查看錯誤詳情,調整目標表 DDL 類型映射 |
| 主鍵/自增衝突 | IDENTITY vs AUTO_INCREMENT 定義差異 | 先建立目標表結構,再僅導入資料 |
| 編碼亂碼 | 字符集不匹配 | DSN 進階設置指定字符集;或遷移後 UPDATE 轉碼 |
進階建議
- 大表分批遷移: 避免單次事務過大導致日誌暴漲或超時
- 預建目標結構: 手工建表優於自動映射,確保索引、約束、分區策略正確
- 驗證機制: 遷移後執行
CHECKSUM TABLE 或行數/關鍵欄位抽樣對比
- 考慮第三方工具: 如 MySQL Workbench Migration Wizard、DBConvert 等 GUI 工具提供更豐富的類型映射控制
版本適用性說明
本文基於 SQL Server 7 / MySQL 3.23-4.0 時代環境。現代版本(SQL Server 2012+、MySQL 5.7+)建議使用:
- Microsoft Data Migration Assistant (DMA)
- MySQL Workbench 內建遷移精靈
- Azure Database Migration Service(雲端場景)
- 上一篇文章: SQL Server 遷移 MySQL 實戰經驗:兩種方案深度對比
- 下一篇文章: MySQL 安全強化指南:從網絡加密到權限最小化的 10 大防禦策略
Copyright ©
程式碼之家 All Rights Reserved