2011-02-23 74 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服务器。