程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 將MSSQL數據轉換到MySQL數據庫的實操演示

將MSSQL數據轉換到MySQL數據庫的實操演示

編輯:MySQL綜合教程

次文章主要向大家介紹的是將MSSQL數據轉換到MySQL數據庫的時機操作方法(MSSQL2MYSQL) ,對於這個問題了很早就有想解決的年頭了,但是到現在還不能算是解決,但至少先把我斗爭到現在的可行的方法以及我嘗試過的方法列舉出來。

最早使用的應該是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):

  1. MSSQL2MYSQL   
  2. Microsoft DTS   
  3. SQLyog   
  4. Access Export   
  5. 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,下面有一個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已經有所更新而代碼中還是舊版本的所以不支持吧。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved