將MSSQL資料轉換到MySQL方法(MSSQL2MYSQL)

來源:互聯網
上載者:User

很早就想解決這個問題了,但可能到現在還不能算是解決,但至少先把我鬥爭到現在的可行的方法以及我嘗試過的方法列舉出來,讓大家能夠走一些近道

最早使用的應該是DBConvert for MSSQL and MySQL工具,但不知道為什麼就是無法串連我的MSSQL,可能是2005的原因吧,連結2000好像是很OK的,因為我測試連接虛擬機器主機的MSSQL2000完全正常,連結原生MSSQL2005失敗,沒有辦法只好放棄。

然後繼續找方法,發現一個問題是,我尋找所有的中文的資料(就是Google尋找出來的中文網頁),都沒有給我太好的結果,最好只好用英文關鍵字尋找:convert mssql to mysql,竟然第一條就是MYSQL官方的網頁,進去瀏覽後發現很不錯,基本上能夠解決我的問題,並提出了五種方法,我尋找的中文網頁基本上是讓我通過ODBC工具來解決的,即使給出代碼之類也沒有好用的代碼。罷,真是差距。簡單讀來,文章中提出了五種方法,分別如下(其實,這個網頁的標題也不是MSSQL2MYSQL,所以有五種方法也應該理解,原文連結:Migrating from Microsoft SQL Server and Access to MySQL):

MSSQL2MYSQL
Microsoft DTS
SQLyog
Access Export
Text Import/Export

以上的幾種轉換,我想都應該要用到ODBC for MYSQL的工具吧,所以請大家先自行下載安裝,並重啟電腦後再使用以上的方法。

Microsoft DTS應該算是MSSQL內建的匯入匯出工具吧,在匯入匯出ACCESS和文本等方面MSSQL還是很不錯的,不過我在MSSQL2005的匯入匯出工具中竟然沒有找到ODBC,夠暈,難道沒有?看來還需要查查文檔。

而Access Export就是Access的匯出工具,匯出的時候選擇ODBC,當然也需要先配置好MYSQL的ODBC參數才好進行。

SQLyog是一個MYSQL的管理工具吧,由於懶得下載,所以也沒有測試。

Text Import/Export這個我在phpMyAdmin工具中匯入文字檔即可,這可能比較適合小量的資料,對於大量的工具我想就不是很方便了。

MSSQL2MYSQL是一個VB類的代碼,全部的代碼請參見此頁:http://www.kofler.cc/mysql/mssql2mysql.txt。將這個代碼複製到VBA或者VB的類別模組中,按照說明設定好參數,運行即開始了資料的轉換過程。這裡有一點值得注意的是,由於不同的資料庫引擎,使用的欄位的類型是不一樣的,所以涉及到欄位類型轉換,不過這份代碼已經解決了這份問題,所以不用考慮資料轉換,不過我也就基本的資料類型永不到image等等類型所以我想有沒有和我關係不大。我開啟VB6真的設定了參數運行了一遍,可以通過,本來準備寫成工具的,結果發現人家本來就提供了第三方的GUI工具,唉,早知道我就直接下GUI工具就可以了不必那麼累讓自己動手一遍。OK,作者的MSSQL2MYSQL頁面:http://www.kofler.cc/mysql/mssql2mysql.html,下面有一個GUI versions的部分,這裡提供了兩個MSSQL2MYSQL的GUI工具,這兩個工具都是比較簡單,我簡單的說一下參數,MSSQL和MYSQL的連結參數我想都會的,那個drop database參數大概是說在轉換前先刪除MYSQL中的該資料庫,然後再做轉換,就是為了乾淨嘛,所以如果轉換到已經存在的資料庫中的話就需要注意了,verbosity其實就是output選項,是轉換到資料庫呢還是輸出為SQL檔案呢,1為輸出檔案,0為直接匯入到MYSQL,其餘沒有什麼好說的,字元編碼一般我想也都用UTF-8吧。其餘就自己琢磨吧。

 

關於MSSQL2MYSQL的效率,真是讓我大失所望,可以說雖然找到了這樣的方法,但是真正的轉換不僅僅是痛苦。上面的MSSQL2MYSQL代碼轉換方法,效率大概是1小時5000條記錄,而使用Access Export,好像也沒有快多少。要知道我600萬條記錄,那要我轉換到猴年馬月?瘋掉。看來還得想其他辦法。不過話又說回來,我將600萬條記錄使用BCP映射的方法匯入到SQL SERVER中,大概也要半個多小時,而使用SQL SERVER的匯出功能將資料庫匯出為ACCESS,時間也不短,最後等的沒有耐心只好開著電腦就去睡覺了。

這大概就是我現階段所嘗試的MSSQL2MYSQL的方法吧,如果有朋友有更好更快的方法,請務必告知一聲,謝謝。

====================
更新:有可能會提示無法串連MYSQL,此部分可能和你裝的MYSQL ODBC有關係,因為預設的設定文字好像有問題,我把ODBC版本設定為“MySQL ODBC 5.1 Driver”,這樣就可以串連了。可能新版本的MYSQL ODBC已經有所更新而代碼中還是舊版本的所以不支援吧。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.