天天看點

SQL Server 遷移資料到MySQL

一、背景

由于項目開始時候使用的資料庫是SQL Server,後來把存儲的資料庫調整為MySQL,是以需要把SQL Server的資料轉移到MySQL;由于涉及的表比較多,是以想在MySQL中生成對應表并導入資料;

二、轉移資料

我使用了MySQL的Client的工具SQLyog,這個工具的安裝很簡單。安裝完成之後點選需要導入的目标資料庫,點選右鍵【Import】->【Import Extenal Data】;

SQL Server 遷移資料到MySQL

(Figure1:Import)

選擇【Start a new job】,點選【下一步】;

SQL Server 遷移資料到MySQL

(Figure2:Start a new job)

下面就是DSN的設定界面,如果你的下來清單中沒有需要導出SQL Server資料庫的DSN,那麼需要通過【Create a New DSN】來建立一個新的DSN連接配接到SQL Sever;

SQL Server 遷移資料到MySQL

(Figure3:Create a New DSN)

SQL Server 遷移資料到MySQL

(Figure4:建立新資料源)

SQL Server 遷移資料到MySQL

(Figure5:選擇資料源類型)

把上面的設定儲存為一個local.dsn檔案;

SQL Server 遷移資料到MySQL

(Figure6:選擇資料源儲存路徑)

SQL Server 遷移資料到MySQL

(Figure7:選擇SQL Server伺服器)

SQL Server 遷移資料到MySQL

(Figure8:設定SQL Server帳号和密碼)

SQL Server 遷移資料到MySQL

(Figure9:選擇SQL Server資料庫)

SQL Server 遷移資料到MySQL

(Figure10:測試資料源)

SQL Server 遷移資料到MySQL

(Figure11:測試成功)

選中【File DSN】,在浏覽中選擇我們剛剛建立好的DSN,接着填寫登入到SQL Server的帳号和密碼;

SQL Server 遷移資料到MySQL

(Figure12:選擇DSN)

下一步,選擇目标MySQL伺服器,填寫IP位址和帳号密碼,并且需要選擇目标資料庫;

SQL Server 遷移資料到MySQL

(Figure13:設定MySQL帳号和密碼目标資料庫)

這一步類似SQL Server的導入導出功能,這裡可以拷貝一個表或者使用SQL腳本過濾資料;

SQL Server 遷移資料到MySQL

(Figure14:表拷貝)

上面的全部過程就是為建立SQL Server與MySQL的一個管道,接下來就是最為重要的設定SQL Server表與MySQL表之間的對應關系了;裡面包括了SQL Server表字段與MySQL表字段之間的對應關系【Map】,進階選項【Advanced】,過濾【WHERE】。

SQL Server 遷移資料到MySQL

(Figure15:選擇表對應關系)

下圖Figure16,資料源【Source】,描述【Destination】,特别注意這裡資料類型【Type】,這裡的意思是轉換目标的資料類型,但是不需要跟目标表的一樣,因為這裡是做為一個臨時存儲的資料類型,類似FindOn在SQL Server中是datetime,這裡轉換為MySQL的timestamp,其實MySQL目标表的資料類型是datetime,這樣的設定也是可以轉換成功的。

SQL Server 遷移資料到MySQL

(Figure16:表字段轉換)

SQL Server 遷移資料到MySQL

(Figure17:進階選項)

SQL Server 遷移資料到MySQL

(Figure18:Error)

SQL Server 遷移資料到MySQL

(Figure19:Log)

SQL Server 遷移資料到MySQL

(Figure20:執行資訊)

SQL Server 遷移資料到MySQL

(Figure21:執行結果)

SQL Server 遷移資料到MySQL

(Figure22:原始SQL Server的資料清單)

SQL Server 遷移資料到MySQL

(Figure23:轉移到MySQL的資料清單)

對比下Figure20與Figure21,發現我們資料已經全部轉移成功了;