將SQL Server數據遷移到MySQL的方法

將SQL Server數據遷移到MySQL的方法我們如果對于複雜的數據庫可以使用程序自己一個個轉,當然現在不用那麽麻煩了,我們直接使用相關工具進行轉換了,此方法只適用于同字段不同數據庫之間的轉換了,如果是兩個數據庫結構不同就只有使用程序來轉了。
一、SQL Server中常用數據類型與MySQL不同的地方

將SQL Server數據遷移到MySQL的方法

二、將SQL Server數據遷移到MySQL需要注意的一些問題

1、唯一索引的不同,sql server的唯一索引的字段只能允許存在一個null值,而mysql,一直oracle中唯一索引對應的字段都允許存在多個null值。

2、存儲過程的語法存在很大的不同,存儲過程的遷移是最麻煩的,需要仔細修改。

3、程序中部分寫的SQL語句由于語法的不同也要相應的修改。

三、將SQL Server數據遷移到MySQL的常見方法

1、使用 SQLyog 遷移

優點

該遷移方法很簡單,靈活,遷移時,可以進行字段的修改,比如在sql server中原來是datetime,然後遷移到mysql時你可以配置成timestamp;成功率很高;

缺點

遷移很慢!這是該方法最大的缺點,如果表的數據量達到幾十萬行,甚至幾百萬行,你會發現遷移起來真的很慢。明顯比其他遷移方法慢很多。

2、使用 powerdesigner 和 sql server 的腳本導出功能 來遷移

(1)、該方法首先使用 powerdesigner,對sql server數據庫,進行逆向工程,得到E-R圖,然後生成MySQL的建表語句。完成數據庫結構的遷移;當然表結構的遷移,不使用powerdesigner一樣也是可以的。比如我將表結構導出成語句,然後手動進行修改,然後在MySQL中運行,也是一樣的;

(2)、然後使用 sql server的工具 SSMS,將sql server數據庫中的表的數據,導出成insert語句,每個表對應導出一個文件,然後對文件進行一些處理,然後導入到MySQL數據庫中。

3、使用Oracle MySQL Server 官方的 workbeach 工具進行遷移

(1)、在workbench 連接sql server時,用戶需要有 view any database 的權限。不然workbench無法訪問sql server的表結構的元數據,從而無法進行遷移。

(2)、還有使用 Navicat 來進行遷移的方法,方法和 SQLyog 是類似的。

例子

二、轉移數據

我使用了MySQL的Client的工具SQLyog,這個工具的安裝很簡單。安裝完成之後點擊需要導入的目標數據庫,點擊右鍵【Import】->【Import Extenal Data】;

將SQL Server數據遷移到MySQL的方法

(Figure1:Import)

選擇【Start a new job】,點擊【下一步】;

將SQL Server數據遷移到MySQL的方法

(Figure2:Start a new job)

下面就是DSN的設置界面,如果你的下來列表中沒有需要導出SQL Server數據庫的DSN,那麽需要通過【Create a New DSN】來創建一個新的DSN連接到SQL Sever;

將SQL Server數據遷移到MySQL的方法

(Figure3:Create a New DSN)

將SQL Server數據遷移到MySQL的方法

(Figure4:創建新數據源)

將SQL Server數據遷移到MySQL的方法

(Figure5:選擇數據源類型)

把上面的設置保存爲一個local.dsn文件;

將SQL Server數據遷移到MySQL的方法

(Figure6:選擇數據源保存路徑)

將SQL Server數據遷移到MySQL的方法

(Figure7:選擇SQL Server伺服器)

將SQL Server數據遷移到MySQL的方法

(Figure8:設置SQL Server帳號和密碼)

將SQL Server數據遷移到MySQL的方法

(Figure9:選擇SQL Server數據庫)

(Figure10:測試數據源)

(Figure11:測試成功)

選中【File DSN】,在浏覽中選擇我們剛剛創建好的DSN,接著填寫登錄到SQL Server的帳號和密碼;

(Figure12:選擇DSN)

下一步,選擇目標MySQL伺服器,填寫IP地址和帳號密碼,並且需要選擇目標數據庫;

(Figure13:設置MySQL帳號和密碼目標數據庫)

這一步類似SQL Server的導入導出功能,這裏可以拷貝一個表或者使用SQL腳本過濾數據;

(Figure14:表拷貝)

上面的全部過程就是爲創建SQL Server與MySQL的一個管道,接下來就是最爲重要的設置SQL Server表與MySQL表之間的對應關系了;裏面包括了SQL Server表字段與MySQL表字段之間的對應關系【Map】,高級選項【Advanced】,過濾【WHERE】。

(Figure15:選擇表對應關系)

下圖Figure16,數據源【Source】,描述【Destination】,特別注意這裏數據類型【Type】,這裏的意思是轉換目標的數據類型,但是不需要跟目標表的一樣,因爲這裏是做爲一個臨時存儲的數據類型,類似FindOn在SQL Server中是datetime,這裏轉換爲MySQL的timestamp,其實MySQL目標表的數據類型是datetime,這樣的設置也是可以轉換成功的。

(Figure16:表字段轉換)

(Figure17:高級選項)

(Figure18:Error)

(Figure19:Log)

(Figure20:執行信息)

(Figure21:執行結果)

(Figure22:原始SQL Server的數據列表)

(Figure23:轉移到MySQL的數據列表)

對比下Figure20與Figure21,發現我們數據已經全部轉移成功了

更多相關文章
  • navicat工具把SQL Server數據庫轉換MySQL數據庫
    記得我以前做過這樣一個事情把一個SQL Server數據庫轉換MySQL,這個整理過程我們
  • 本文章來給各位同學介紹一下關于ASP連接SQL Server數據庫程序實例,希望此文章對asp初學者有所幫助哦.在ASP中鏈接SQL Server數據庫 在ASP中數據庫鏈接2中方法1.直接用字符串鏈接,代碼如下:
  • 本文章來給各位同學介紹Microsoft SQL server數據庫轉換爲MySQL方法實現方法,以前經常有人會問我怎麽轉換,下面我看到一篇不錯的教程 ,下面來分享給各位同學.有時需要把MS SQL數據庫轉換成MySQL,但苦于沒有好用的工具,個人使用一個手工轉換的方法,相對來說還是比較方便的,對于
  • 雖然很多朋友說ruby連接sqlserver在微軟官方有ODBC驅動了,但我還是出于自信自己要在于linux中直接配置了,下面給各位同學分享具體過程.因爲工作需要,要分析存放在SQL Server上的數據,所以不得不研究一下如何使用Ruby訪問SQL Server,發現其實還是很簡單的:安裝Free
  • 下面介紹了兩種連接sqlserver的方法一種是利用SQL Server身份驗證連接數據庫,另一種利用Windows身份驗證.1.使用SQL Server身份驗證 代碼如下 Data Source=(local);I
  • 連接Access數據庫教程需要導入額外的命名空間,所以有了最前面的兩條using命令,這是必不可少的! strConnection這個變量裏存放的是連接數據庫所需要的連接字符串,他指定了要使用的數據提供者和要使用的數據源. "Provider=Microsoft.Jet.OleDb.4.0 ...
  • 以前我們使用asp時90%都會使用Microsoft SQL server數據庫了,現在要把網站升級成php的,自然我們需要轉換在mysql數據庫了,下面我來介紹我把mssql server數據庫轉換爲MySQL具體方法與過程.思想:通過mssql構造出MySQL的insert into 語句,保存
  • 下面我們一起來看一篇關于阿裏雲ECS雲伺服器Linux系統盤網站數據遷移至數據盤的例子,希望此例子能夠爲各位帶來幫助.在阿裏雲購買的1台ECS,原系統盤20G,無數據盤,把LNMP環境都搭建在系統盤的/alidata
一周排行
  • 在mysql伺服器中my.cnf文件的重要性我不說多了,下面我們一起來看看my.cnf文件針對不同機器的參數配置是多少比較合理吧,希望文章對各位同學會有所幫助.PS:本配置文件針對Dell R710,雙至強E5620
  • Open Flash Chart多報表我們在許多的網站都會看到這個功能了,今天小編就來爲各位介紹Open Flash Chart多報表使用方法吧將生成好的JSON數據傳遞給前端,前端通過JS來實現切換效果例子.< ...
  • AlterSito: - Gestione文件,編輯每合奏我linguaggi迪programmazione. - PHP5發送PHP4 CON GD,卷曲,pdoMySQL,connessioni伺服器到伺服器的M
  • Lumia專業拍攝5.0基礎教程之對焦
    諾基亞Lumia Denim更新爲830.930.1520後,新版Lumia專業拍攝5.0
  • 今天我們用最簡單的方法來實現下拉菜單效果,利用了js的document.getElementById來獲取id再對要顯示的層作顯示隱藏處理就KO了. 代碼如下 <html> <head> &l ...
  • [ajax介紹] ajax是使用客戶端腳本與web伺服器交換數據的web應用開發方法.web頁面不用打斷交互流程進行重新加裁,就可以動態地更新.使用ajax,用戶可以創建接近本地桌面應用的直接.高可用.更豐富.更動態
  • listbox綁定到自定義對象 1. listbox的textmember與valuemember必需是屬性2.綁定對象必需繼承ilist3. 綁定輔助用這個 private currencymanager curr
  • 下面來分享一個關于JavaScript實現XML與JSON互轉例子,這裏面介紹了國外的三款xml轉json的例子,希望這些例子能給你帶來幫助.最近在開發線上XML編輯器,打算使用JSON做爲中間格式.因爲JSON相對 ...
  • amh本身是一款不錯的linux下的管理面板了,下面我就來介紹利用amh來修改ftp默認端口吧,希望此例子對你會有所幫助.看博文發表日期,我已經有3個月沒有更新博客.因wordpress自動升級失敗,拖了數日,後來找 ...
  • 我采用nginx + php-fpm的配置,nginx默認情況下,不提供PATH_INFO,通過以下設置,可以讓 nginx 提供 PATH_INFO: 代碼如下 server { listen 80; server ...