如何将数据从SQL Server 2005导出到MySQL [关闭]


86

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

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

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


1
我听说有人成功使用MSSQL2MySQL,但是我自己不能保证这一点。
Greg Hurlman

1
我听说SQLYob可以做到。< webyog.com/en >此处:< searchsqlserver.techtarget.com/tip/… >
borjab

该工具正是您所需要的:Full Convert Enterprise。确实,您会丢失视图,过程和触发器,但是它针对大型表进行了高度优化。转换所有对象(过程等)的另一种解决方案(更昂贵)是SqlTran SQL Server到MySQL
Damir Bulic 2012年


1
@borjab:SQLyog以前在较旧的版本中可与ODBC一起使用,但现在不再可用,因此它不是这项工作的选择。
BlaM 2012年

Answers:


59

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


2
+1-现在是EOL,MySQL Workbench将包含一个迁移插件(过去的版本5.2),但现在使用以下链接:dev.mysql.com/downloads/gui-tools/5.0.html
Mark Robinson

不想转换DATE或DATETIME列:(
Robert Ivanc 2010年

1
注:目前,MySQL的迁移工具包不适用于Linux(从dev.mysql.com/doc/migration-toolkit/en/...
mkirk

1
请注意,“我的SQL迁移工具包”需要32位版本的JDK 5 Update 8或更高版本(必须为ver 5,ver 6无法正常工作),您可以在此处下载:tinyurl.com/5snd6y3
casterle

9

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

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

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


9

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

我没有必要将数据从SQLServer迁移到MySQL,但是我想象一旦安装了MySQL连接,它的工作原理与在两个SQLServer DB之间移动数据的工作原理相同,这非常简单。


8

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

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


6

另一个可以尝试的工具是SQLMaestro套件。确定精确工具有点棘手,但是它们有多种工具,包括免费和购买工具,可处理多个数据库平台的各种任务。我建议先尝试使用MySQL的数据向导工具,因为我相信它将拥有您需要的正确的“导入”工具。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.