1. 程式人生 > >使用Navicat將SQL Server資料遷移到MySQL

使用Navicat將SQL Server資料遷移到MySQL

1、SQL Server資料庫匯出到MySQL

如果我們已經基於SQL Server進行了開發,並且具有很多基礎的資料庫資料了,那麼我們可以利用SQL Server匯出到MySQL資料庫中,這種是我們常見的一種開發方式,畢竟基於SQLServer資料庫開發起來會比較快速一些。

SQL Server資料庫的管理工具是SQL Server Management Studio;而Mysql資料庫的管理工具則推薦使用Navicat,這是一款非常強大好用的管理工具。

首先我們使用Navicat建立自己一個空白的Mysql資料庫,用來承載SQL Server 的資料匯出需要。

例如我們建立一個和SQL Server資料庫同名的MVCWebMisTest資料庫,並且設定它的字符集為預設或者UTF8的編碼方式,如下所示。

然後利用SQL Server Management Studio進行資料的直接匯出,選擇【任務】【匯出資料】,如下所示。

 

然後在彈出的資料庫裡面選擇匯入的資料來源和目標,選擇匯入的資料來源介面如下所示。

然後在目標裡面選擇Mysql的驅動,填入相應的資訊,如下介面所示。

 

然後在下一步選擇需要匯出的表資訊。

 很不幸,這種方式操作資料庫的匯出操作沒有辦法成功。

 

2、從Navicat中匯入MS SQLServer資料庫資料

既然通過SQL Server Management Studio無法匯入資料到Mysql資料庫中,那麼我們嘗試下Mysql的資料庫管理工具Navicat,它也有資料傳輸(匯入匯出)的功能。

我們在剛才建好的資料庫上面右鍵調出對應的【資料傳輸】功能,然後設定好資料的源和目標,如下所示。

執行資料傳輸操作,順利完成,非常強大和方便,而且沒有任何錯誤。如下介面所示。

檢查資料庫匯入的資料表和資料,沒有問題。

3、Mysql資料庫之間的傳遞

那麼如果我們需要部署到伺服器,就需要把當前的Mysql資料庫傳遞(或者還原)到伺服器的MySQL資料庫中,一般來講,我們利用Mysql的Navicat管理工具就可以實現資料匯出的sql檔案裡面,然後在伺服器裡面使用反向操作即可還原資料庫成功的了。

 

轉儲SQL檔案成功如下介面所示。

而在伺服器的上面,我們可以利用Navicat的執行SQL檔案即可還原Mysql資料庫了。

執行的結果如下所示。

當然有時候也會發現存在一些表依賴引用的情況發生,不知道是不是Navicat版本出來的問題,不過如果有這個問題,只要不是編碼的問題,都好解決,開啟sql檔案把建立表的順序調整一下就可以了,我就碰到過這種極端的情況,把一些依賴表調整到前面來就可以順利匯入資料了。

4、底層的Mysql資料庫支援 

 底層支援多種資料庫,對我們開發不同型別的專案有著非常重要的支撐作用,我們不知道客戶具體環境會選擇那種資料庫,如果我們擴充套件不同的資料庫非常方便和迅速,無疑會給我們提供很好的控制力和信心。

採用了微軟企業庫Enterprise Library作為我們底層的資料庫訪問模組後,對於多種資料庫的訪問操作,就會統一採用這個企業庫的資料庫訪問物件,操作起來非常一致,為了對不同資料庫的常規增刪改查等一些操作進行進一步的封裝,已達到簡化程式碼的目的,因此我們可以為每個不同的資料庫定義一個數據訪問操作基類,以便實現一些不同資料庫差異性的處理,但是它們還是有一個共同的資料訪問基類。

 採用不同的資料庫,我們需要為不同資料庫的訪問層進行生成處理,如為SQLServer資料的表生成相關的資料訪問層DALSQL,裡面放置各個表物件的內容,不過由於採用了相關的繼承類處理和基於資料庫的程式碼生成,需要調整的程式碼很少。

我們為了不同的資料庫準備了不同的資料庫實現,不過也僅僅是特殊的介面呼叫而已,一般常規的增刪改查以及分頁等普通介面,全部交由基類介面實現即可。

如對於許可權管理系統這個常規框架基礎模組,多資料庫的支援就非常必要的,它的資料庫訪問層如下所示。

不同的資料庫訪問層實現也是相差無幾的,一般可以利用程式碼生成工具進行快速生成後,增加自定義介面實現即可。

而對於不同資料庫的支援,直接複製過去,改動一下資料庫實現層的名稱空間和訪問層的基類就可以了,如果有自定義SQL指令碼上的差異,可以適當的修改即可。一般從一種資料庫支援擴充套件到另外一種資料庫支援,無非就是複製過去,進行調整一下即可,非常方便快速,這個就是整體框架支援的魅力和效率所在。

這樣整合多種資料庫支援的底層後,整個資料訪問的架構設計如下所示。

有了這些底層支援,我們在配置檔案選擇不同的資料庫的時候,選擇性的保留其中一種資料庫配置資訊即可。下面是各種資料庫支援的配置資訊參考,一般保留一種即可。