第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將SQL Server數(shù)據(jù)庫導出到MySQL?

如何將SQL Server數(shù)據(jù)庫導出到MySQL?

MM們 2019-10-26 11:20:27
我正在嘗試從SQL Server數(shù)據(jù)庫備份文件(.bak)轉換為MySQL。這個問題和答案非常有用,我已經(jīng)成功導入了數(shù)據(jù)庫,但是現(xiàn)在只能導出到MySQL。建議使用MySQL Migration Toolkit,但似乎已被MySQL Workbench取代。是否可以使用MySQL Workbench以與遷移工具相同的方式從SQL Server進行遷移?還是在某處仍然可以使用Migration Toolkit?
查看完整描述

3 回答

?
喵喔喔

TA貢獻1735條經(jīng)驗 獲得超5個贊

我使用sqlyog從mssql遷移到mysql。我嘗試了Migration工具箱和工作臺,但喜歡sqlyog的SJA。我可以安排導入過程,也可以使用WHERE子句進行增量導入。


查看完整回答
反對 回復 2019-10-26
?
紅顏莎娜

TA貢獻1842條經(jīng)驗 獲得超13個贊

如上所述,如果您的數(shù)據(jù)中包含制表符,逗號或換行符,那么使用CSV導出和導入數(shù)據(jù)將非常困難。值將從字段中溢出,您將獲得錯誤。如果您的任何長字段都包含多行文本,其中包含換行符,則此問題會更加嚴重。


在這些情況下,我的方法是使用BCP命令行實用工具從SQL Server導出數(shù)據(jù),然后在MySQL中使用LOAD DATA INFILE .. INTO TABLE命令讀取數(shù)據(jù)文件。BCP是最早的SQL Server之一命令行實用程序(可追溯到SQL Server v6.5的誕生),但它仍然存在,并且仍然是獲取數(shù)據(jù)的最簡單,最可靠的方法之一。


要使用此技術,您需要在MySQL中使用相同或等效的架構創(chuàng)建每個目標表。通過右鍵單擊SQL企業(yè)管理器中的“數(shù)據(jù)庫”,然后單擊“任務”->“生成腳本...”,并為所有表創(chuàng)建一個SQL腳本,可以做到這一點。然后,您必須手動將腳本轉換為與MySQL兼容的SQL(這絕對是工作中最糟糕的部分),并最終在MySQL數(shù)據(jù)庫上運行CREATE TABLE命令,以便將表與SQL Server版本進行逐列匹配,為空且準備好數(shù)據(jù)。


然后,從MS-SQL端導出數(shù)據(jù),如下所示。


bcp DatabaseName..TableName out TableName.dat -q -c -T -S ServerName -r \0 -t !\t!

(如果使用的是SQL Server Express,則使用-S值,如下所示:-S“ ComputerName \ SQLExpress”)


這將創(chuàng)建一個名為TableName.dat的文件,其字段由![tab]分隔!和以\ 0個NUL字符分隔的行。


現(xiàn)在,將.dat文件復制到MySQL服務器上的/ tmp并在MySQL端進行加載,如下所示:


LOAD DATA INFILE '/tmp/TableName.dat' INTO TABLE TableName FIELDS TERMINATED BY '!\t!' LINES TERMINATED BY '\0';

不要忘記,表(此示例中的TableName)必須已經(jīng)在MySQL端創(chuàng)建。


在轉換SQL模式時,此過程非常麻煩,但是它適用于最困難的數(shù)據(jù),并且由于它使用平面文件,因此您無需說服SQL Server與MySQL對話,反之亦然。


查看完整回答
反對 回復 2019-10-26
  • 3 回答
  • 0 關注
  • 1711 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號