一、 背景
由于項目開始時候使用的數據庫是SQL Server,后來把存儲的數據庫調整為MySQL,所以需要把SQL Server的數據轉移到MySQL;由于涉及的表比較多,所以想在MySQL中生成對應表并導入數據;
上網找了些資料,如: 將ACCESS和MSSQL導入MYSQL中 、 MySQL Migration 實現 MSSQL 到 MySQL數據遷移 ,雖然不知道里面的做法是否可以成功轉移,但是里面的過程比較復雜,沒有去嘗試,后來自己找到了方法,最重要就是簡單和準確(暫時沒發現明顯的BUG),這里分享給大家。
?
二、 轉移數據
我使用了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,發現我們數據已經全部轉移成功了;
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
