2011-02-23 73 views
0

警告:我對MySQL沒有經驗。將MySQL MyISAM導入到SQL Server中

我一直在考慮了一系列的文件做數據轉換,並想提供的數據遷移到SQL Server 2008中的文件有:

  • * .MYD
  • *。 MYI
  • * .FRM

這些文件類型,按我的理解,是MyISAM數據。我相信,如果我有一個正在運行的MySQL實例,遷移到SQL Server將相當簡單。我可以使用SQL Server的導入嚮導或Microsoft SQL Server Migration Assistant for MySQL v1.0。不幸的是,這些文件是我堅持的 - 我只是沒有訪問原始的MySQL實例。

我目前還沒有將MySQL作爲運行實例在本地,我不確定是否存在兼容性問題。

我可以將它們附加到MySQL 5.5以執行SQLDump的目標還是使用上述任一工具?我錯過了一個更好的方法?

+1

您應該能夠將這些放入正在運行的MySQL安裝中,然後使用遷移助理和/或僅使用mysqldump獲取重建數據庫所需的原始SQL。但是我懷疑微軟會爲二進制mysql文件編寫解析器,僅僅爲了導入目的。 – 2011-02-23 17:54:59

+0

@Marc B--將它們放入一個正常運行的MySQL安裝中? – 2011-02-23 18:00:35

+0

把這些文件放到MySQL的數據目錄中,重啓服務器,除非你的版本與創建它們的版本大不相同,否則它們應該與「真實」數據庫無法區分。 – 2011-02-23 18:55:18

回答

1

是的,你可以很容易地將它們附加到MySQL 5.5。然後你可以使用mysqldump來轉儲這些表(注意你需要修改轉儲並從轉儲中刪除特定於mysql的東西,或者可能需要定製mysqldump輸出 - 查看mysqldump文檔瞭解詳細信息)。您還可以嘗試將Mysql實例鏈接到SQL Server,然後使用SELECT ... INTO [sql_server_table_name] FROM [mysql_table_name]複製表。 在任何情況下,最難的部分是遷移存儲過程/觸發器。 Mysql和SQL Server對它們有相當不同的語法,所以你可能不能自動執行這個過程。
更新
此外,我忘了提及,你將不得不修改mysql auto_increment列到IDENTITY([next_auto_increment_value],1) SQL服務器。