sqlserver2008數據庫轉換mysql 5.5數據導入方法

以前我做過一個人才系統是需要把不同數據庫mssqlserver與mysql進行轉換了,當時數據庫不一樣結果不同,所以我是寫得程序轉的,這裏介紹的是只是把數據轉換結構是相同的。

一,只轉換數據庫(兩數據庫中表與數據都一樣只是由sqlserver轉換mysql)

想把Microsoft sql server 2008的數據導入到mysql 5.5 ,過程並沒有想象的那麽簡單。
安裝環境:
Microsoft sql server 版本:2008
mysql 版本: 5.5
操作系統版本:windows7 64位

1、SQL Server Management Studio導出的向導裏,在選擇導出目的數據源的時候沒有發現mysql的驅動,于是安裝mysql的ODBC 5.2.3:http://dev.mysql.com/downloads/connector/odbc/,因爲我的操作系統是64版本,于是下載的版本也是64位的。安裝完畢,並在windows7的“控制面板”—>”管理工具”—>”數據源(ODBC)” 配置mysql 的用戶dsn和系統dsn 。

2、配置完dsn後,再次運行SQL Server Management Studio導出的向導,但在選擇目的源的仍然沒有關mysql的odbc數據源查資料有種說法是sql server 從 2005版本開始不再支持odbc的數據源了,不過我沒查到官方的解釋。使用.NET Framework Data Provider for ODBC 方式報錯:未發現數據源名稱並且未指定默認的驅動程序,原因不明。

3、于是嘗試是不是可以通過mysql的客戶端Navicat for MySQL來導入數據。打開Navicat for MySQL,新建一個空庫,然後選擇“表”,右鍵選擇“導入向導”,選擇導入的數據格式爲“odbc”,然後選擇數據源“SQL server Native Client 10.0”,輸入數據庫伺服器ip地址、用戶名、密碼,選擇數據庫,連接成功後,選擇要導入的表。我導入後,檢查mysql數據後發現,去掉了主鍵屬性,需要手動添加。基本算是導入成功了。

二、轉移數據

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

sqlserver2008數據庫轉換mysql 5.5數據導入方法

(Figure1:Import)

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

sqlserver2008數據庫轉換mysql 5.5數據導入方法

(Figure2:Start a new job)

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

sqlserver2008數據庫轉換mysql 5.5數據導入方法

(Figure3:Create a New DSN)

sqlserver2008數據庫轉換mysql 5.5數據導入方法

(Figure4:創建新數據源)

sqlserver2008數據庫轉換mysql 5.5數據導入方法

(Figure5:選擇數據源類型)

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

sqlserver2008數據庫轉換mysql 5.5數據導入方法

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

sqlserver2008數據庫轉換mysql 5.5數據導入方法

(Figure7:選擇SQL Server伺服器)

sqlserver2008數據庫轉換mysql 5.5數據導入方法

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

sqlserver2008數據庫轉換mysql 5.5數據導入方法

(Figure9:選擇SQL Server數據庫)

sqlserver2008數據庫轉換mysql 5.5數據導入方法

(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,發現我們數據已經全部轉移成功了;

二,數據結構與數據表都不相同,這個我這裏不寫方法了,大家使用程序直接轉換,在轉換時對于數據字段類型中mysql與sqlserver有一個text類型需要進行強制轉換哦

更多相關文章
  • navicat工具把SQL Server數據庫轉換MySQL數據庫
    記得我以前做過這樣一個事情把一個SQL Server數據庫轉換MySQL,這個整理過程我們
  • 本文章來給各位同學介紹Microsoft SQL server數據庫轉換爲MySQL方法實現方法,以前經常有人會問我怎麽轉換,下面我看到一篇不錯的教程 ,下面來分享給各位同學.有時需要把MS SQL數據庫轉換成MySQL,但苦于沒有好用的工具,個人使用一個手工轉換的方法,相對來說還是比較方便的,對于
  • 以前我們使用asp時90%都會使用Microsoft SQL server數據庫了,現在要把網站升級成php的,自然我們需要轉換在mysql數據庫了,下面我來介紹我把mssql server數據庫轉換爲MySQL具體方法與過程.思想:通過mssql構造出MySQL的insert into 語句,保存
  • Sql server2008的數據庫轉換成SQL2005數據庫
    一般情況下是不會要把高版本轉換低版本了,今天我是本地用的sql2008數據庫而伺服器使用的
  • //<ACCESS數庫轉換成MYSQL數據庫教程>看不懂的朋友可加QQ:345838256///////////////////////////////// //本人采集來的數據是ACCESS的,但我的程序是mysq
  • 在php中數組與字符串相互轉換最常用的方法就是使用explode(),implode()函數來轉換了,今天我看一朋友問了一個這樣的問題,下面我來整理一下分享給各位.行看看這兩個函數implode 函數:使用函數 implode 將數組轉換爲字符串explode 函數:使用函數 explode 將字符
  • 文章給各位介紹通過WordPress數據庫操作類wpdb訪問數據庫,有需要了解相關操作的朋友可進入參考哦.爲了方便訪問mysql數據庫,wordpress提供了一個全局變量$wpdb,通過$wpdb變量可以訪問數據庫中的任何數據表,可以實現對數據庫的各項操作,包括建表.查詢.刪除.更新等,但是訪問僅 ...
  • 本文章介紹了在java中IP地址轉換十進制數及把10進制再轉換成IP地址的程序代碼吧.先看實例 代碼如下 class ip { private static long iptolong(string strip) /
一周排行