一、背景
由于項目開始時候使用的資料庫是SQL Server,後來把存儲的資料庫調整為MySQL,是以需要把SQL Server的資料轉移到MySQL;由于涉及的表比較多,是以想在MySQL中生成對應表并導入資料;
二、轉移資料
我使用了MySQL的Client的工具SQLyog,這個工具的安裝很簡單。安裝完成之後點選需要導入的目标資料庫,點選右鍵【Import】->【Import Extenal Data】;
(Figure1:Import)
選擇【Start a new job】,點選【下一步】;
(Figure2:Start a new job)
下面就是DSN的設定界面,如果你的下來清單中沒有需要導出SQL Server資料庫的DSN,那麼需要通過【Create a New DSN】來建立一個新的DSN連接配接到SQL Sever;
(Figure3:Create a New DSN)
(Figure4:建立新資料源)
(Figure5:選擇資料源類型)
把上面的設定儲存為一個local.dsn檔案;
(Figure6:選擇資料源儲存路徑)
(Figure7:選擇SQL Server伺服器)
(Figure8:設定SQL Server帳号和密碼)
(Figure9:選擇SQL Server資料庫)
(Figure10:測試資料源)
(Figure11:測試成功)
選中【File DSN】,在浏覽中選擇我們剛剛建立好的DSN,接着填寫登入到SQL Server的帳号和密碼;
(Figure12:選擇DSN)
下一步,選擇目标MySQL伺服器,填寫IP位址和帳号密碼,并且需要選擇目标資料庫;
(Figure13:設定MySQL帳号和密碼目标資料庫)
這一步類似SQL Server的導入導出功能,這裡可以拷貝一個表或者使用SQL腳本過濾資料;
(Figure14:表拷貝)
上面的全部過程就是為建立SQL Server與MySQL的一個管道,接下來就是最為重要的設定SQL Server表與MySQL表之間的對應關系了;裡面包括了SQL Server表字段與MySQL表字段之間的對應關系【Map】,進階選項【Advanced】,過濾【WHERE】。
(Figure15:選擇表對應關系)
下圖Figure16,資料源【Source】,描述【Destination】,特别注意這裡資料類型【Type】,這裡的意思是轉換目标的資料類型,但是不需要跟目标表的一樣,因為這裡是做為一個臨時存儲的資料類型,類似FindOn在SQL Server中是datetime,這裡轉換為MySQL的timestamp,其實MySQL目标表的資料類型是datetime,這樣的設定也是可以轉換成功的。
(Figure16:表字段轉換)
(Figure17:進階選項)
(Figure18:Error)
(Figure19:Log)
(Figure20:執行資訊)
(Figure21:執行結果)
(Figure22:原始SQL Server的資料清單)
(Figure23:轉移到MySQL的資料清單)
對比下Figure20與Figure21,發現我們資料已經全部轉移成功了;