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

MSSQL 遷移 MySQL 實戰指南:手工建表、CSV 匯入與工具選型避坑

     編輯:MySQL 資料庫相關知識

遷移策略總覽

MSSQL → MySQL 遷移主要分三階段:結構轉換 → 資料匯出 → 資料匯入。針對小型專案可手工操作;大型專案建議使用專用遷移工具。

手工遷移步驟(適用於表數較少、結構簡單)

  1. 結構對照建表:用 MSSQL 企業管理器查看表結構,在 phpMyAdmin 逐表建立,同步優化欄位型別(如 datetime→DATETIME、nvarchar→VARCHAR)。
  2. 資料匯出 CSV:企業管理器 → 右鍵表 → 匯出 → 文字檔 → 分隔符選 ;(phpMyAdmin 預設)。
  3. phpMyAdmin 匯入:選擇「CSV using LOAD DATA」,指定分隔符 ;,編碼匹配資料庫編碼。

遷移工具推薦(大型/複雜專案)

工具特點適用場景
DBConvert for MSSQL & MySQL雙向轉換、GUI 操作、支援排程、約 10MB企業級雙向同步、異構遷移
MSSQL to MySQL輕量(1MB+)、指定庫/表導出 SQL、可直連 MySQL 寫入單向遷移、腳本化部署

實戰踩坑記錄與解決方案

坑 1:建表引擎與編碼不符

  • 工具產出 ENGINE=INNODB,生產環境用 MYISAM + gbk
  • 解決:批次替換 SQL 檔 ENGINE=INNODB → ENGINE=MYISAM DEFAULT CHARSET=GBK

坑 2:中文編碼亂碼

  • 資料庫實際編碼 GBK,匯入未指定字元集
  • 解決:匯入命令加參數 --default-character-set=gbk
mysql --default-character-set=gbk -D db_name < dump.sql -uroot -p

坑 3:自增主鍵衝突、外鍵順序

  • 匯入順序需遵循:無依賴表 → 被依賴表
  • 或暫時關閉外鍵檢查:SET FOREIGN_KEY_CHECKS=0; 匯入完再開啟

驗證清單

  • ✅ 表數量、欄位數、索引數一致
  • ✅ 關鍵表行數 SELECT COUNT(*) 對齊
  • ✅ 抽樣比對業務關鍵欄位(金額、時間、中文欄位)
  • ✅ 應用端連線測試:編碼、時區、SQL_MODE 相容性

結語

MSSQL 遷 MySQL 核心在於編碼一致性與引擎選型對齊。小專案手工可控,大專案善用工具並保留可重現的匯出/匯入腳本,才能實現平滑遷移。

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