SQL Server 遷移數據到MySQLhtml
1、背景mysql
因爲要在sqlserver中導出一些報表還要對一些表進行一些特殊處理,很久沒用功sqlserver了,想着導入到mysql中更好操做些,因此須要把SQL Server的數據轉移到MySQL;因爲涉及的表比較多,因此想在MySQL中生成對應表並導入數據;sql
上網找了些資料,如:將ACCESS和MSSQL導入MYSQL中、MySQL Migration 實現 MSSQL 到 MySQL數據遷移,雖然不知道里面的作法是否能夠成功轉移,可是裏面的過程比較複雜,沒有去嘗試,後來本身找到了方法,最重要就是簡單和準確(暫時沒發現明顯的BUG),這裏分享給你們。數據庫
2、轉移數據服務器
我使用了MySQL的Client的工具SQLyog,這個工具的安裝很簡單。安裝完成以後點擊須要導入的目標數據庫,點擊右鍵【Import】->【Import Extenal Data】;app
(Figure1:Import)工具
選擇【Start a new job】,點擊【下一步】;sqlserver
(Figure2:Start a new job)測試
下面就是DSN的設置界面,若是你的下來列表中沒有須要導出SQL Server數據庫的DSN,那麼須要經過【Create a New DSN】來建立一個新的DSN鏈接到SQL Sever;spa
(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,發現咱們數據已經所有轉移成功了;
工具下載地址