sql server匯入mysql,使用工具SQLyog

肖祥發表於2024-08-24

概述

需要將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分鐘左右。

驗證

開啟資料表,檢視資料

相關文章