LearnHouse

SQL Server資料匯入MySQL

相信這個問題拜託google大師後會有很多種解法

可是符合需求又簡單的卻沒幾種

而且可分自行寫程式的或是利用軟體轉換 

但偏偏寫程式的方式我怎麼使用都沒辦法正常連線到SQL Server

後來找到了一個方法,不用寫程式就能轉換,而且可以自訂排程 

首先要先下載 MySQL Connector/ODBC

在SQL Server端安裝,這裡的設定以Windows Server 2003為主

安裝完後就開始設定如何連結MySQL,開始→程式及→系統管理工具→資料來源 (ODBC)

切換到系統資料來源名稱,按新增

 

找到MySQL ODBC 3.51 Driver後點選並按完成

 

根據下面圖的指示填入,並選擇所要匯入的資料庫後按OK,若有出現錯誤點選Diagnostics看錯誤訊息

 

再來開始就是要匯資料了,開始→程式集→Microsoft SQL Server→Enterprise Manager,找到你要匯出的資料庫與資料表

在要匯出的資料表按右鍵選 所有工作→匯出資料

 

點選下一步,資料來源選擇Microsoft OLE DB Provider for SQL Server

伺服器選local,並使用Windows的帳戶驗證,資料庫選擇想匯出的資料庫

 

點選下一步,目的地選擇MySQL ODBC 3.51 Driver,使用者/系統 DSN下拉會有當初設定的名稱

 

點選下一步,複製來源資料庫的資料表與檢視表

 

點選下一步,選擇SQL Server中哪些資料表要轉到MySQL並按下一步執行,就可以成功匯進去了

後記

由於匯出來的資料中文是BIG5編碼,因此若MySQL資料表規劃是以UTF-8為編碼格式

可以寫一程式讓他全部轉換成UTF-8,可利用iconv函數去轉換中文的部份 

posted by admin in Linux and have Comments (7)

7 Responses to “SQL Server資料匯入MySQL”

  1. Leeson 說:

    好樣的!
    剛好工作上也用的到!
    感謝分享!

  2. yuchin 說:

    to Leeson:
    彼此分享才能減少解決問題的時間
    也是我發表文章的動力與價值

    不過這個方式,在中文亂碼的部份讓我吃足了苦頭
    因為從SQL Server匯過來的是BIG5編碼
    後來索性就寫一支程式把資料全取出來然後轉碼在回存
    不知道有遇到這種情況的人是如何解決這問題?

  3. Leeson 說:

    目前我的作法是:
    1.利用排程執行sql server 的command mode 指令(那一個指令我忘了),直接執行 *.sql 抓出資料存成文字檔。

    2.再利用排程執行 ConvertZ command mode 執行轉碼成UTF8文字檔!

    3.再利用排程執行PHP程式,彙入Mysql。

    一共用了三個排程!@@
    還要小心計算資料量及執行時間!才不至於資料抓取錯誤!

    你的做法簡捷多了!

  4. yuchin 說:

    我想請教你第一個做法利用排程執行sql server 的command mode 指令,直接執行 *.sql 抓出資料存成文字檔。
    抓出來的文字檔是sql的語法文字檔還是資料的text檔??

  5. Leeson 說:

    isqlw
    這一個指令。

  6. yuchin 說:

    了解!!原來SQL Server也有command mode

Place your comment

Please fill your data and comment below.
Name
Email
Website
Your comment