SQL Server 迁移数据到MySQL
一、背景
由于項(xiàng)目開(kāi)始時(shí)候使用的數(shù)據(jù)庫(kù)是SQL Server,后來(lái)把存儲(chǔ)的數(shù)據(jù)庫(kù)調(diào)整為MySQL,所以需要把SQL Server的數(shù)據(jù)轉(zhuǎn)移到MySQL;由于涉及的表比較多,所以想在MySQL中生成對(duì)應(yīng)表并導(dǎo)入數(shù)據(jù);
上網(wǎng)找了些資料,如:將ACCESS和MSSQL導(dǎo)入MYSQL中、MySQL Migration 實(shí)現(xiàn) MSSQL 到 MySQL數(shù)據(jù)遷移,雖然不知道里面的做法是否可以成功轉(zhuǎn)移,但是里面的過(guò)程比較復(fù)雜,沒(méi)有去嘗試,后來(lái)自己找到了方法,最重要就是簡(jiǎn)單和準(zhǔn)確(暫時(shí)沒(méi)發(fā)現(xiàn)明顯的BUG),這里分享給大家。
?
二、轉(zhuǎn)移數(shù)據(jù)
我使用了MySQL的Client的工具SQLyog,這個(gè)工具的安裝很簡(jiǎn)單。安裝完成之后點(diǎn)擊需要導(dǎo)入的目標(biāo)數(shù)據(jù)庫(kù),點(diǎn)擊右鍵【Import】->【Import Extenal Data】;
(Figure1:Import)
選擇【Start a new job】,點(diǎn)擊【下一步】;
(Figure2:Start a new job)
下面就是DSN的設(shè)置界面,如果你的下來(lái)列表中沒(méi)有需要導(dǎo)出SQL Server數(shù)據(jù)庫(kù)的DSN,那么需要通過(guò)【Create a New DSN】來(lái)創(chuàng)建一個(gè)新的DSN連接到SQL Sever;
(Figure3:Create a New DSN)
(Figure4:創(chuàng)建新數(shù)據(jù)源)
(Figure5:選擇數(shù)據(jù)源類(lèi)型)
把上面的設(shè)置保存為一個(gè)local.dsn文件;
(Figure6:選擇數(shù)據(jù)源保存路徑)
(Figure7:選擇SQL Server服務(wù)器)
(Figure8:設(shè)置SQL Server帳號(hào)和密碼)
(Figure9:選擇SQL Server數(shù)據(jù)庫(kù))
(Figure10:測(cè)試數(shù)據(jù)源)
(Figure11:測(cè)試成功)
選中【File DSN】,在瀏覽中選擇我們剛剛創(chuàng)建好的DSN,接著填寫(xiě)登錄到SQL Server的帳號(hào)和密碼;
(Figure12:選擇DSN)
下一步,選擇目標(biāo)MySQL服務(wù)器,填寫(xiě)IP地址和帳號(hào)密碼,并且需要選擇目標(biāo)數(shù)據(jù)庫(kù);
(Figure13:設(shè)置MySQL帳號(hào)和密碼目標(biāo)數(shù)據(jù)庫(kù))
這一步類(lèi)似SQL Server的導(dǎo)入導(dǎo)出功能,這里可以拷貝一個(gè)表或者使用SQL腳本過(guò)濾數(shù)據(jù);
(Figure14:表拷貝)
上面的全部過(guò)程就是為創(chuàng)建SQL Server與MySQL的一個(gè)管道,接下來(lái)就是最為重要的設(shè)置SQL Server表與MySQL表之間的對(duì)應(yīng)關(guān)系了;里面包括了SQL Server表字段與MySQL表字段之間的對(duì)應(yīng)關(guān)系【Map】,高級(jí)選項(xiàng)【Advanced】,過(guò)濾【W(wǎng)HERE】。
(Figure15:選擇表對(duì)應(yīng)關(guān)系)
下圖Figure16,數(shù)據(jù)源【Source】,描述【Destination】,特別注意這里數(shù)據(jù)類(lèi)型【Type】,這里的意思是轉(zhuǎn)換目標(biāo)的數(shù)據(jù)類(lèi)型,但是不需要跟目標(biāo)表的一樣,因?yàn)檫@里是做為一個(gè)臨時(shí)存儲(chǔ)的數(shù)據(jù)類(lèi)型,類(lèi)似FindOn在SQL Server中是datetime,這里轉(zhuǎn)換為MySQL的timestamp,其實(shí)MySQL目標(biāo)表的數(shù)據(jù)類(lèi)型是datetime,這樣的設(shè)置也是可以轉(zhuǎn)換成功的。
(Figure16:表字段轉(zhuǎn)換)
(Figure17:高級(jí)選項(xiàng))
(Figure18:Error)
(Figure19:Log)
(Figure20:執(zhí)行信息)
(Figure21:執(zhí)行結(jié)果)
(Figure22:原始SQL Server的數(shù)據(jù)列表)
(Figure23:轉(zhuǎn)移到MySQL的數(shù)據(jù)列表)
對(duì)比下Figure20與Figure21,發(fā)現(xiàn)我們數(shù)據(jù)已經(jīng)全部轉(zhuǎn)移成功了;
轉(zhuǎn)載于:https://www.cnblogs.com/gaizai/p/3237907.html
總結(jié)
以上是生活随笔為你收集整理的SQL Server 迁移数据到MySQL的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: map中的erase成员函数用法
- 下一篇: [转]Windows Shell 编程