如何将数据从SQLServer2005导出到MySQL

如何将数据从SQLServer2005导出到MySQL,mysql,sql-server,csv,sql-server-2005,bcp,Mysql,Sql Server,Csv,Sql Server 2005,Bcp,我一直在用头撞击SQL Server 2005,试图获取大量数据。我得到了一个包含近300个表的数据库,我需要将其转换为MySQL数据库。我的第一个调用是使用bcp,但不幸的是它没有生成有效的CSV-字符串没有封装,因此您无法处理任何带有逗号字符串的行(或任何用作分隔符的行),并且我仍然必须手工编写所有create table语句,很明显,CSV不会告诉您任何关于数据类型的信息 更好的是,如果有某种工具可以连接到SQL Server和MySQL,然后进行复制。您会丢失视图、存储过程、触发器等,但

我一直在用头撞击SQL Server 2005,试图获取大量数据。我得到了一个包含近300个表的数据库,我需要将其转换为MySQL数据库。我的第一个调用是使用bcp,但不幸的是它没有生成有效的CSV-字符串没有封装,因此您无法处理任何带有逗号字符串的行(或任何用作分隔符的行),并且我仍然必须手工编写所有create table语句,很明显,CSV不会告诉您任何关于数据类型的信息

更好的是,如果有某种工具可以连接到SQL Server和MySQL,然后进行复制。您会丢失视图、存储过程、触发器等,但将只使用基类型的表从一个DB复制到另一个DB并不困难。。。是吗


有人知道这样的工具吗?只要它支持integer、float、datetime和string,我不在乎它做了多少假设,也不在乎发生了什么简化。我必须做大量的修剪、归一化等工作,所以我不在乎保留关键点、关系或类似的东西,但我需要快速的初始数据集

滚动您自己的PHP解决方案肯定会奏效,尽管我不确定是否有一种好方法可以自动将模式从一个数据库复制到另一个数据库(可能这是您的问题)


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

另一个可以尝试的工具是。确定精确的工具有点棘手,但是他们有各种各样的工具,免费的和可购买的,可以处理多种数据库平台的各种任务。我建议首先尝试MySQL的数据向导工具,因为我相信它会有您需要的合适的“导入”工具。

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

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


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

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

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


当然,您也可以像正常情况一样备份数据库,并找到一个实用程序来恢复MYSQL上的MSSQL备份。但是,我不确定是否存在。它现在是EOL,MySQL Workbench将包含一个迁移插件(过去的5.2版),但现在使用以下链接:不想转换日期或日期时间列:(注意:目前,MySQL迁移工具包不适用于Linux(从)请注意,My SQL迁移工具包需要32位版本的JDK 5 update 8或更高版本(必须是5版,6版不起作用),你可以在这里下载:我听说有一些人成功地使用了,但我自己不能保证。我听说SQLYob可以做到。这里:这个工具正是你想要的:。没错,你会丢失视图、过程和触发器,但它对大型表进行了高度优化。另一个解决方案(更昂贵)可以转换所有对象(过程等)这里的答案类似:@borjab:SQLyog过去在旧版本中使用ODBC,但现在不再使用了,所以它不是这个工作的选项。