概述
需要將sql server的資料匯入到mysql中,由於2種資料庫存在各種差異,比如表欄位型別就有很多不同,因此需要工具來實現。
這裡使用SQLyog來實現。
SQLyog安裝
安裝過程參考文件:https://blog.csdn.net/Sunshine_liang1/article/details/84400820
注意:版本不能太低,必須要有匯入外部資料才可以。
ODBC資料來源
由於SQLyog只能連線到mysql,它不能連線sql server,因此連線sql server的工作,需要由odbc來進行連線。
以windows 11為例:
點選左下角的windows圖示,輸入odbc
就可以看到搜尋結果,點選64位的
點選新增
選擇sql server
輸入資訊
選擇密碼登入,輸入賬號和密碼
選擇資料庫
點選完成
SQLyog資料匯入
新建mysql連線
建立一個空庫,也就是要傳輸的資料庫名
CREATE DATABASE AdventureWorksDW2014 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
匯入外部資料
點選匯入外部資料
下一步
選擇系統dsn,輸入sql server的使用者名稱和密碼
選擇mysql資料庫
選擇mysql資料庫
從源複製
勾選第一個表,點選右邊的三個點
點選編輯sql
這裡會顯示建立SQL表語句
將這段sql語句複製下來,然後手動在myql中執行,
CREATE TABLE `AdventureWorksDW2014`.`AdventureWorksDWBuildVersion`( `DBVersion` varchar(50) NULL, `VersionDate` timestamp(6) NULL );
注意:SQLyog不會自動在目標資料庫中建立表,建立的表的動作,需要手動完成才可以。
由於sql server和mysql表的欄位存在差異,因此軟體會自動生成與之匹配的建立SQL表語句
但是生成的建立SQL表語句並不是100%準確,我驗證了一下,準確率在99%,準確率還是很高的。
務必勾選外來鍵檢查,它會幫你檢查外來鍵關聯,自動調整傳輸表順序,父關聯表,會優先匯入。
點選下一步
點選下一步
提示匯入完成
整個傳輸過程完成
注意:上面只是演示了一張表,其實可以選擇多個表,進行一次性傳輸,但前提是目標庫中已經建立好表結構,就可以批次傳輸了。
傳輸過程是單程序的,一個表一個表的傳,一條條資料插入,所以傳輸速度會比較慢。
如果sql server mdf檔案在200m左右,傳輸需要花費30分鐘左右。
驗證
開啟資料表,檢視資料