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

我一直在反对 SQL Server 2005 ,试图获取大量数据。我给了一个数据库,里面有近300个表格,我需要把它变成一个MySQL数据库。我的第一个电话是使用bcp,但不幸的是它不产生有效的CSV - 字符串没有封装,所以你不能处理任何有逗号的字符串(或任何你用作分隔符的行)而且我仍然必须手写所有的create table语句,显然,CSV并没有告诉你有关数据类型的任何信息。

更好的是,如果有一些工具可以连接到SQL Server和MySQL,然后做一个副本。你失去了视图,存储过程,触发器等等,但是复制一个只使用基本类型从一个数据库到另一个数据库的表并不难......是吗?

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

0
额外 编辑
意见: 3
我听说有几个人成功使用 MSSQL2MySQL ,但我无法保证为我自己。
额外 作者 Greg Hurlman,
@borjab:SQLyog用于在旧版本中使用ODBC,但现在不再使用,所以它不适用于此作业。
额外 作者 BlaM,
我听说SQLYob可以做到。 << a href =“http://www.webyog.com/en/>”rel =“nofollow noreferrer”> webyog.com/en/> ;这里:<< a href =“http://searchsqlserver.techtarget.com/tip/0,289483,sid87_gci1196733,00.html#>”rel =“nofollow noreferrer”> searchsqlserver.techtarget.com/tip/… < / A>;
额外 作者 borjab,
此工具正是您所要求的:完整转换企业版。诚然,你失去了意见,程序和触发器,但它对于巨大的表格进行了高度优化。另一种解决方案(更昂贵)转换所有对象(程序等)是 SqlTran SQL Server到MySQL
额外 作者 Damir Bulic,
类似的答案在这里:MySQL migration” > stackoverflow.com/questions/11619177/…
额外 作者 Jacob,

4 答案

我找到的最好的方法是MySQL提供的 MySQL迁移工具包。我已经成功地将它用于一些大型迁移项目。

0
额外
不想将DATE或DATETIME列转换:(
额外 作者 Robert Ivanc,
注意:目前,MySQL Migration Toolkit不适用于Linux(来自 dev.mysql.com/doc/migration-toolkit/en/…
额外 作者 mkirk,
+1 - 现在是EOL,MySQL Workbench将包含迁移插件(过去的版本5.2),但现在使用以下链接: dev.mysql.com/downloads/gui-tools/5.0.html
额外 作者 Mark Robinson,
请注意,My SQL Migration Toolkit需要JDK 5 update 8或更高版本的32位版本(必须是版本5,版本6不会工作),您可以在这里下载: tinyurl.com/5snd6y3
额外 作者 casterle,

虽然我不确定是否有一种很好的方法可以自动将模式从一个数据库复制到另一个数据库(也许这是您的问题),但滚动您自己的PHP解决方案肯定会起作用。

如果您只是复制数据,或者无论如何您都需要自定义代码来在两个数据库之间的已修改架构之间进行转换,我会推荐使用PHP 5.2+和PDO库。您将能够使用PDO ODBC进行连接(并使用MSSQL驱动程序)。使用其他库将大型文本字段和多字节字符从MSSQL传输到PHP中有很多问题。

0
额外

另一个尝试的工具是SQLMaestro套件 - http://www.sqlmaestro.com 这是一个有点棘手的钉子精确的工具,但他们有各种各样的免费和购买工具,可处理多种数据库平台的各种任务。我建议首先尝试MySQL的数据向导工具,因为我相信这将有你需要的正确的“导入”工具。

0
额外

SQL Server 2005“Standard”,“Developer”和“Enterprise”版本的 SSIS 取代了DTS来自Sql server 2000. SSIS与它自己的DB有内置的连接,并且你可以找到别人为MySQL编写的连接。 这里就是一个例子。一旦建立了连接,您应该能够创建一个在两者之间移动数据的SSIS包。

我没有必要将数据从SQlServer移动到MySQL,但我想象一旦安装了MySQl连接,它就像在两个SQLServer DB之间移动数据一样,这非常简单。

0
额外