如何将数据从SQL Server 2005导出到MySQL
我一直在反对" SQL Server 2005",试图获取大量数据。我已经获得了一个包含近300个表的数据库,我需要将其转换为MySQL数据库。我的第一个电话是使用bcp,但不幸的是,它不会产生未封装的有效CSV字符串,因此我们无法处理其中带有逗号(或者用作定界符的任何字符串)的任何行,并且我仍然需要手写所有的create table语句,因为显然CSV不会告诉我们有关数据类型的任何信息。
最好是如果有一些工具可以同时连接到SQL Server和MySQL,然后进行复制。我们会丢失视图,存储过程,触发器等,但是将仅使用基本类型的表从一个数据库复制到另一个数据库并不难...是吗?
有人知道这样的工具吗?只要它支持整数,浮点数,日期时间和字符串,我都不介意进行多少假设或者进行什么简化。无论如何,我都必须进行大量的修剪,规范化等工作,因此我不关心保留键,关系或者类似的东西,但是我需要快速的初始数据集!
解决方案:
尽管我不确定是否存在将模式从一个数据库自动复制到另一个数据库的好方法,但是滚动自己的PHP## 解决方案当然可以工作(也许这是问题)。
如果我们只是复制数据,并且/或者仍然需要自定义代码以在两个DB之间的修改后的架构之间进行转换,那么我建议我们使用PHP 5.2+和PDO库。我们将能够使用PDO ODBC(和MSSQL驱动程序)进行连接。使用其他库将大型文本字段和多字节字符从MSSQL转换为PHP时,我遇到了很多问题。
可以尝试使用的另一种工具是SQLMaestro套件http://www.sqlmaestro.com精确设置该工具有些麻烦,但是它们有多种工具,包括免费工具和购买工具,可以处理各种任务。多个数据库平台。我建议先尝试使用MySQL的数据向导工具,因为我相信它将拥有我们需要的正确"导入"工具。
我发现的最好方法是MySQL提供的MySQL Migration Toolkit。我已经成功地将其用于一些大型迁移项目。
SQL Server 2005"标准","开发人员"和"企业"版本具有SSIS,该版本取代了Sql Server 2000中的DTS。SSIS具有与其自己的数据库的内置连接,我们可以找到其他人为MySQL编写的连接。 。这是一个例子。建立连接后,我们应该能够创建一个在两个之间移动数据的SSIS包。
我不必将数据从SQlServer移到MySQL,但是我想一旦安装MySQl连接,它的工作原理与在两个SQLServer DB之间移动数据的工作原理相同,这很简单。
使用MSSQL Management Studio,我已经使用MySQL OLE DB转换了表。右键单击数据库,然后从那里转到"任务->导出数据",我们可以指定MsSQL OLE DB源,MySQL OLE DB源并在两个数据源之间创建列映射。
我们很可能希望在MySQL目标上预先设置数据库和表(导出将要自动创建表,但这通常会导致失败)。我们可以通过右键单击数据库,使用"任务->生成脚本"在MySQL中快速创建表。生成了创建脚本后,我们将需要逐步执行并搜索/替换MSSQL到MYSQL中存在的关键字和类型。
当然,我们也可以像平常一样备份数据库,并找到可以在MYSQL上还原MSSQL备份的实用程序。我不确定是否存在。