時(shí)間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(1)
次文章主要向大家介紹的是將MSSQL數(shù)據(jù)轉(zhuǎn)換到MySQL數(shù)據(jù)庫(kù)的時(shí)機(jī)操作方法(MSSQL2MYSQL) ,對(duì)于這個(gè)問題了很早就有想解決的年頭了,但是到現(xiàn)在還不能算是解決,但至少先把我斗爭(zhēng)到現(xiàn)在的可行的方法以及我嘗試過的方法列舉出來。
最早使用的應(yīng)該是DBConvert for MSSQL and MySQL工具,但不知道為什么就是無法連接我的MSSQL,可能是2005的原因吧,鏈接2000好像是很OK的,因?yàn)槲覝y(cè)試連接虛擬主機(jī)的MSSQL2000完全正常,鏈接本機(jī)的MSSQL2005失敗,沒有辦法只好放棄。
然后繼續(xù)找方法,發(fā)現(xiàn)一個(gè)問題是,我查找所有的中文的資料(就是Google查找出來的中文網(wǎng)頁(yè)),都沒有給我太好的結(jié)果,最好只好用英文關(guān)鍵字查找:
convert mssql to mysql,竟然第一條就是MYSQL數(shù)據(jù)庫(kù)官方的網(wǎng)頁(yè),進(jìn)去瀏覽后發(fā)現(xiàn)很不錯(cuò),基本上能夠解決我的問題,并提出了五種方法,我查找的中文網(wǎng)頁(yè)基本上是讓我通過ODBC工具來解決的,即使給出代碼之類也沒有好用的代碼。罷,真是差距。
簡(jiǎn)單讀來,文章中提出了五種方法,分別如下(其實(shí),這個(gè)網(wǎng)頁(yè)的標(biāo)題也不是MSSQL2MYSQL數(shù)據(jù)庫(kù),所以有五種方法也應(yīng)該理解,原文鏈接:Migrating from Microsoft SQL Server and Access to MySQL):
MSSQL2MYSQL
Microsoft DTS
Access Export
Text Import/Export
以上的幾種轉(zhuǎn)換,我想都應(yīng)該要用到ODBC for MYSQL的工具吧,所以請(qǐng)大家先自行下載安裝,并重啟電腦后再使用以上的方法。
Microsoft DTS應(yīng)該算是MSSQL自帶的導(dǎo)入導(dǎo)出工具吧,在導(dǎo)入導(dǎo)出ACCESS和文本等方面MSSQL還是很不錯(cuò)的,不過我在MSSQL2005的導(dǎo)入導(dǎo)出工具中竟然沒有找到ODBC,夠暈,難道沒有?看來還需要查查文檔。
而Access Export就是Access的導(dǎo)出工具,導(dǎo)出的時(shí)候選擇ODBC,當(dāng)然也需要先配置好MYSQL的ODBC參數(shù)才好進(jìn)行。
SQLyog是一個(gè)MYSQL的管理工具吧,由于懶得下載,所以也沒有測(cè)試。
Text Import/Export這個(gè)我在phpMyAdmin工具中導(dǎo)入文本文件即可,這可能比較適合小量的數(shù)據(jù),對(duì)于大量的工具我想就不是很方便了。
MSSQL2MYSQL是一個(gè)VB類的代碼,全部的代碼請(qǐng)參見此頁(yè):http://www.kofler.cc/mysql/mssql2mysql.txt。將這個(gè)代碼復(fù)制到VBA或者VB的類模塊中,按照說明設(shè)置好參數(shù),運(yùn)行即開始了數(shù)據(jù)的轉(zhuǎn)換過程。這里有一點(diǎn)值得注意的是,由于不同的數(shù)據(jù)庫(kù)引擎,使用的字段的類型是不一樣的,所以涉及到字段類型轉(zhuǎn)換,不過這份代碼已經(jīng)解決了這份問題,所以不用考慮數(shù)據(jù)轉(zhuǎn)換,不過我也就基本的數(shù)據(jù)類型永不到image等等類型所以我想有沒有和我關(guān)系不大。
我打開VB6真的設(shè)置了參數(shù)運(yùn)行了一遍,可以通過,本來準(zhǔn)備寫成工具的,結(jié)果發(fā)現(xiàn)人家本來就提供了第三方的GUI工具,唉,早知道我就直接下GUI工具就可以了不必那么累讓自己動(dòng)手一遍。
OK,下面有一個(gè)GUI versions的部分,這里提供了兩個(gè)MSSQL2MYSQL的GUI工具,這兩個(gè)工具都是比較簡(jiǎn)單,我簡(jiǎn)單的說一下參數(shù),MSSQL和MYSQL數(shù)據(jù)庫(kù)的鏈接參數(shù)我想都會(huì)的,那個(gè)drop database參數(shù)大概是說在轉(zhuǎn)換前先刪除MYSQL中的該數(shù)據(jù)庫(kù),然后再做轉(zhuǎn)換,就是為了干凈嘛,所以如果轉(zhuǎn)換到已經(jīng)存在的數(shù)據(jù)庫(kù)中的話就需要注意了,verbosity其實(shí)就是output選項(xiàng),是轉(zhuǎn)換到數(shù)據(jù)庫(kù)呢還是輸出為SQL文件呢?
1為輸出文件,0為直接導(dǎo)入到MYSQL,其余沒有什么好說的,字符編碼一般我想也都用UTF-8吧。其余就自己琢磨吧。
關(guān)于MSSQL2MYSQL的效率,真是讓我大失所望,可以說雖然找到了這樣的方法,但是真正的轉(zhuǎn)換不僅僅是痛苦。上面的MSSQL2MYSQL代碼轉(zhuǎn)換方法,效率大概是1小時(shí)5000條記錄,而使用Access Export,好像也沒有快多少。要知道我600萬條記錄,那要我轉(zhuǎn)換到猴年馬月?瘋掉。
看來還得想其他辦法。不過話又說回來,我將600萬條記錄使用BCP映射的方法導(dǎo)入到SQL SERVER中,大概也要半個(gè)多小時(shí),而使用SQL SERVER的導(dǎo)出功能將數(shù)據(jù)庫(kù)導(dǎo)出為ACCESS,時(shí)間也不短,最后等的沒有耐心只好開著電腦就去睡覺了。
這大概就是我現(xiàn)階段所嘗試的MSSQL2MYSQL數(shù)據(jù)庫(kù)的方法吧,如果有朋友有更好更快的方法,請(qǐng)務(wù)必告知一聲,謝謝更新:有可能會(huì)提示無法連接MYSQL,此部分可能和你裝的MYSQL ODBC有關(guān)系,因?yàn)槟J(rèn)的設(shè)置文字好像有問題,我把ODBC版本設(shè)置為"MySQL ODBC 5.1 Driver",這樣就可以連接了??赡苄掳姹镜腗YSQL ODBC已經(jīng)有所更新而代碼中還是舊版本的所以不支持吧。
關(guān)鍵詞標(biāo)簽:MSSQL數(shù)據(jù),MySQL數(shù)據(jù)庫(kù)
相關(guān)閱讀
熱門文章 Xbox Game Pass 10款MySQL數(shù)據(jù)庫(kù)客戶端圖形界面管理工具推薦 MySQL常用維護(hù)管理工具 MySQL數(shù)據(jù)庫(kù)啟動(dòng)失敗1067進(jìn)程意外終止的解決辦法總結(jié)
人氣排行 10款MySQL數(shù)據(jù)庫(kù)客戶端圖形界面管理工具推薦 MySQL數(shù)據(jù)庫(kù)啟動(dòng)失敗1067進(jìn)程意外終止的解決辦法總結(jié) Mysql 1045錯(cuò)誤解決辦法 MySQL服務(wù)器進(jìn)程CPU占用100%解決辦法 MySQL導(dǎo)出導(dǎo)入命令的用例 MySQL連接字符串的實(shí)際操作步驟匯總 MySQL無法啟動(dòng)、無法停止各種解決方法總結(jié) 三種常用的MySQL建表語句