首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

mss2sql 實戰遷移 SQL Server 到 MySQL 全記錄:從 ODBC 失敗到成功落地

     編輯:MySQL 綜合教學

mss2sql 實戰遷移 SQL Server 到 MySQL 全記錄:從 ODBC 失敗到成功落地

記錄一次真實項目:Ruby on Rails 專案需將現有 SQL Server 數據遷移至 MySQL。嘗試 ODBC 導出遭遇架構不匹配、驅動版本地獄後,最終使用輕量工具 mss2sql 成功落地。本文還原完整操作流程、截圖關鍵步驟、踩坑避坑,供同類場景參考。

背景與嘗試

  • 環境:Win7 64位、SQL Server 2008 Express、MySQL 5.6
  • 嘗試 1:SQL Server 導出向導 + MySQL ODBC 64 位驅動 → 報錯「體系結構不匹配」
  • 嘗試 2:32 位 ODBC 驅動 → 64 位系統不顯示
  • 轉向:尋找專用遷移工具,發現 mss2sql

mss2sql 完整操作流程

  1. 下載:mss2sql,解壓
  2. 啟動:雙擊 mss2sql.exe,默認選「Move to MySQL Server directly」→ Next
  3. 源庫連接:自動枚舉本機 SQL Server 實例,選擇目標數據庫 → Next
  4. 目標庫連接:Local、User、Password、Database(預建好空庫) → Next
  5. 衝突策略:目標庫同名時選 Overwrite the entire database(全量覆蓋)
  6. 選表:Add All 全選,或勾選特定表 → Next
  7. 執行遷移:進度條顯示結構創建、數據導入,萬行表約 10 分鐘
  8. 驗證:MySQL 客戶端查表結構、行數、中文內容、主鍵自增均正常

關鍵截圖節點

mss2sql 歡迎頁
歡迎頁:選擇遷移模式
SQL Server 連接
源庫連接配置
MySQL 連接
目標庫連接配置
衝突策略
目標庫存在時的覆蓋策略
選表
選擇遷移表
遷移進行中
遷移進度監控
遷移結果
遷移完成,數據完整

遷移後驗證清單

  • [ ] 表結構:列名、類型、長度、非空、默認值、註釋
  • [ ] 主鍵:是否 AUTO_INCREMENT、起始值
  • [ ] 索引:主鍵、唯一、普通索引是否齊全
  • [ ] 外鍵:引用完整性(工具通常不遷移 FK,需手工補)
  • [ ] 行數對賬:SELECT COUNT(*) 源目一致
  • [ ] 關鍵業務字段抽樣對比
  • [ ] 中文編碼:SELECT HEX(col) 檢查 UTF-8

已知局限與補充方案

局限補充方案
主鍵自增屬性偶爾丟失遷移後執行 ALTER TABLE t MODIFY id BIGINT AUTO_INCREMENT;
外鍵關系不遷移導出源庫 FK DDL,手動在目標庫執行
視圖/存儲過程/函數不支持人工重寫(T-SQL → MySQL 語法差異大)
大表(億級)速度慢、易中斷分批導出、或用 bcp + LOAD DATA、或 CDC 同步
僅 Windows GUI,無命令行自動化企業級遷移改用 Migration Toolkit / 自研腳本

最佳實踐總結

  1. 小表、一次性遷移、Windows 環境 → mss2sql 最省心
  2. 需自動化、跨平台、可重複 → MySQL Migration Toolkit (XML 腳本)
  3. 需人工干預類型映射、可視化操作 → Navicat Premium
  4. 生產大表零停機 → 全量 + CDC 增量同步(Debezium / Canal / 觸發器)
  5. 遷移前必備:源庫備份、目標庫字符集 utf8mb4、類型映射表確認、驗證腳本準備
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved