如何將資料庫從SQL Server遷移到MySQL

2021-06-18 07:35:52 字數 1755 閱讀 2914

一、遷移database schema。

首先使用sybase powerdesigner的逆向工程功能,逆向出sql server資料庫的物理模型。具體操作是在powerdesigner中選擇「file」,「reverse engine」再選擇database,將dbms選擇為sql server,如圖:

然後選擇資料來源,也就是要具體連線到的sql server資料庫伺服器,然後選擇要逆向的資料庫名,比如選中「wss_content_80」如圖所示:

單擊確定即可生成物理模型圖:

然後單擊「database」選單下的change current dbms修改當前的dbms,改為mysql 5.0,

單擊確定後即可生成mysql的物理模型 然後單擊「database」選單下的「generate database」生成資料庫指令碼檔案。

接下來是手工修改下生成的指令碼的內容。

將其中的dbo.全部替換成空

將create user這樣的語句刪除掉。

如果有些字元在mysql中是關鍵字,那麼必須使用「`」(鍵盤上數字1左邊那個符合)符合框起來。

加上mysql所需要的儲存引擎比如每個建表語句後跟上:

engine = innodb character set utf8 collate utf8_general_ci;

將生成的指令碼在mysql中去執行一次即可建立資料庫。

二、遷移資料內容

資料內容只能通過生成insert語句的方式來做。

首先使用ssms的「生成指令碼」功能(在資料庫上右鍵,選擇「任務」「生成指令碼」選項),可以為sql server資料庫中的資料生成插入指令碼。

首先選擇要遷移資料的表,這裡我們全選所有的表:

單擊「高階」選項,在高階選項視窗中選擇「要編寫指令碼的資料的型別」為僅限資料:

使用批量替換的方式去掉[ ]這是sql server的符合,在mysql中不用這個。

使用批量替換的方式去掉dbo.

有些單詞在mysql中是關鍵字的,那麼需要使用「`」引起來。

關於datetime型別的資料,需要手工修改下,sql server預設生成的是這樣的語句,在mysql中是沒辦法解析的:

cast(0x00009eef00000000 as datetime)

為每一行新增乙個;表示乙個插入語句結束。這個分號在sql server中可以不需要,但是在mysql中是必須的。簡單的方法是使用高階的文字編輯器(比如notepad++),將\r\n替換為;\r\n即可。

如何 將更新從資料庫匯入資料庫專案

首次建立資料庫專案時,通常需要從現有的生產資料庫中匯入資料庫架構。如果在開發過程中對成品伺服器應用了更改,那麼您可能還需要將這些更改匯入您的專案中。不能使用 匯入資料庫架構 命令,因為該命令僅適用於尚未包含資料庫物件的專案。若要匯入對資料庫伺服器所做的更改,必須使用 架構比較 注意 在使用 架構比較...

如何將資料庫從SQL Server遷移到MySQL

一 遷移database schema。首先使用sybase powerdesigner的逆向工程功能,逆向出sql server資料庫的物理模型。具體操作是在powerdesigner中選擇 file reverse engine 再選擇database,將dbms選擇為sql server,如圖...

如何將資料庫從SQL Server遷移到MySQL

一 遷移database schema。首先使用sybase powerdesigner的逆向工程功能,逆向出sql server資料庫的物理模型。具體操作是在powerdesigner中選擇 file reverse engine 再選擇database,將dbms選擇為sql server,如圖...