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

MySQL 數據遷移至 SQL Server 完整指南:ODBC 數據源配置與導入嚮導實戰

     編輯:MySQL 資料庫相關知識

異構遷移實戰:MySQL → SQL Server 透過 ODBC 連接的標準化流程

將 MySQL 資料遷移至 SQL Server,官方推薦路徑為:MySQL ODBC 驅動 → 系統 DSN → SQL Server 匯入嚮導。本文詳細記錄每一步配置細節、字符集陷阱與驗證方法,確保遷移零資料損失、零亂碼。

前置準備

  • 目標 SQL Server 實例已就緒(建議 2016+)
  • 網路互通:MySQL 主機 3306 埠可從 SQL Server 主機訪問
  • MySQL 用戶具備 SELECT、LOCK TABLES、SHOW VIEW 權限

步驟 1:安裝 MySQL ODBC 驅動

下載 MySQL Connector/ODBC 8.0+** (Unicode 版):
• 64 位系統安裝 64 位驅動(匹配 SQL Server 位數)
• 安裝包:mysql-connector-odbc-8.0.xx-winx64.msi

步驟 2:配置系統 DSN (關鍵:字符集設置)

  1. 打開 ODBC 數據源管理員 (64 位):C:\Windows\System32\odbcad32.exe
  2. 切換 系統 DSN 標籤 → 新增 → 選擇 MySQL ODBC 8.0 Unicode Driver
  3. 填寫連接參數:
欄位值/說明
Data Source NameMySQL_Source (自定義,導入時選擇此名)
TCP/IP ServerMySQL 主機 IP 或主機名
Port3306 (或自定義埠)
User / PasswordMySQL 讀取帳號密碼
Database下拉選擇要遷移的具體資料庫

關鍵:Connection Options → Character Set
• MySQL 為 utf8mb4 → 選擇 utf8mb4
• MySQL 為 gbk → 選擇 gbk
• 錯誤選擇 latin1 將導致中文變「???」或亂碼**

步驟 3:SQL Server 匯入嚮導執行遷移

  1. SSMS 連接目標 SQL Server → 右鍵資料庫節點 → 任務 → 匯入資料
  2. 資料來源:.NET Framework Data Provider for ODBC 或 Microsoft OLE DB Provider for ODBC Drivers
  3. 連接字串:DSN=MySQL_Source; (或展開屬性填寫)
  4. 目標:選擇目標資料庫(新建或現有)
  5. 選擇「從來源資料庫複製表與視圖」
  6. 勾選所有要遷移的表 → 編輯映射 關鍵檢查:

映射檢查清單:

  • 資料類型對應:VARCHAR→NVARCHAR、INT→INT、DATETIME→DATETIME2、TEXT→NVARCHAR(MAX)
  • 主鍵、自增、預設值、NOT NULL 保留
  • 字符欄位**必須映射為 Unicode 類型 (NVARCHAR/NCHAR)** 存儲中文
  1. 勾選「執行」 → 完成

步驟 4:遷移後驗證

-- 1. 行數核對
SELECT 'MySQL' AS src, COUNT(*) FROM mysql_db.tbl
UNION ALL
SELECT 'SQLServer', COUNT(*) FROM sqlserver_db.dbo.tbl;

-- 2. 關鍵業務欄位抽樣
SELECT * FROM sqlserver_db.dbo.tbl WHERE chinese_col LIKE N'%中文%';

-- 3. 主鍵/自增/索引檢查
EXEC sp_help 'dbo.tbl';

常見問題與解決

現象原因解決
中文變 ??? / 亂碼DSN Character Set 未設或設錯重建 DSN,嚴格匹配 MySQL 字符集
大字段截斷目標欄位長度不足 (VARCHAR(8000) 上限)映射為 NVARCHAR(MAX) / VARBINARY(MAX)
自增列衝突遷移數據含 ID,目標表自增種子衝突DBCC CHECKIDENT ('tbl', RESEED, max_id)
視圖/存儲過程失敗語法不兼容 (LIMIT vs TOP, IF vs CASE)僅遷移表數據,邏輯對象手工重寫
速度極慢ODBC 單線程、無批量提交分批遷移、或用 SSIS/BCP/第三方工具

大數據量替代方案

  • SSIS 封裝:支援並行、錯誤流、增量、調度
  • BCP + 本地匯出:MySQL SELECT ... INTO OUTFILE → BCP 批量導入
  • 第三方工具:DBConvert、HeidiSQL 匯出 SQL → sqlcmd 執行
  • 雲遷移服務:AWS DMS、Azure Database Migration Service

總結

「MySQL ODBC 驅動 + 系統 DSN (正確字符集) + SQL Server 匯入嚮導」是中小數據量異構遷移的**標準化、零成本、可視化**路徑。核心鐵律:**DSN 字符集必須與 MySQL 實際字符集完全一致**,否則中文必亂碼。

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