如何将数据从SQL Server 2005导出到MySQL

如何将数据从SQL Server 2005导出到MySQL

How to export data from SQL Server 2005 to MySQL

我一直在努力反对SQL Server 2005,试图获取大量数据。我已经获得了一个包含近300个表的数据库,我需要将其转换为MySQL数据库。我的第一个电话是使用bcp,但不幸的是,它不会产生有效的CSV-字符串未封装,因此您无法处理其中包含逗号的字符串的任何行(或用作分隔符的任何行)而且我仍然必须手写所有的create table语句,因为显然CSV不会告诉您有关数据类型的任何信息。

最好是如果有一些工具可以同时连接到SQL Server和MySQL,然后进行复制。您会丢失视图,存储过程,触发器等,但是将仅使用基本类型的表从一个数据库复制到另一个数据库并不难...是吗?

有人知道这样的工具吗?只要它支持整数,浮点数,日期时间和字符串,我都不介意它做出多少假设或进行了什么简化。无论如何,我都必须进行大量的修剪,规范化等工作,因此我不关心保留键,关系或类似的东西,但是我需要快速的初始数据集!


我发现的最好方法是MySQL提供的MySQL Migration Toolkit。我已经成功地将其用于一些大型迁移项目。


使用MSSQL Management Studio,我已经使用MySQL OLE DB转换了表。右键单击数据库,然后从那里转到"任务->导出数据",您可以指定MsSQL OLE DB源,MySQL OLE DB源并在两个数据源之间创建列映射。

您很可能希望在MySQL目标上预先设置数据库和表(导出将要自动创建表,但这通常会导致失败)。您可以通过右键单击数据库,使用"任务->生成脚本"在MySQL中快速创建表。一旦生成了创建脚本,您将需要逐步浏览并搜索/替换MSSQL到MYSQL中存在的关键字和类型。

当然,您也可以像平常一样备份数据库,并找到可以在MYSQL上还原MSSQL备份的实用程序。我不确定是否存在。


SQL Server 2005"标准","开发人员"和"企业"版本具有SSIS,该版本取代了Sql Server 2000中的DTS。SSIS具有与其自己的数据库的内置连接,您可以找到其他人为MySQL编写的连接。 。这是一个例子。建立连接后,您应该能够创建一个在两个之间移动数据的SSIS包。

我不必将数据从SQlServer移到MySQL,但是我想像一下,一旦安装了MySQl连接,它的工作原理就和在两个SQLServer DB之间移动数据一样,这很简单。


尽管我不确定是否存在将模式从一个数据库自动复制到另一个数据库的好方法,但是滚动自己的PHP解决方案肯定可以工作(也许这是您的问题)。

如果您只是复制数据,并且/或者仍然需要自定义代码以在两个DB之间的修改后的架构之间进行转换,那么我建议您使用PHP 5.2+和PDO库。您将能够使用PDO ODBC(和使用MSSQL驱动程序)进行连接。使用其他库将大文本字段和多字节字符从MSSQL转换为PHP时,我遇到了很多问题。


可以尝试使用的另一种工具是SQLMaestro套件-http://www.sqlmaestro.com要精确设置精确的工具会有些棘手,但是它们有许多免费的和可购买的工具,可以处理各种各样的任务。用于多个数据库平台。我建议先尝试使用MySQL的数据向导工具,因为我相信它将拥有您需要的正确的"导入"工具。


推荐阅读