【问题标题】:How to export data from SQL Server 2005 to MySQL [closed]如何将数据从 SQL Server 2005 导出到 MySQL [关闭]
【发布时间】:2010-09-05 05:37:46
【问题描述】:

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

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

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

【问题讨论】:

  • 我听说有几个人成功使用了MSSQL2MySQL,但我自己不能保证。
  • 我听说 SQLYob 可以做到。 webyog.com/en> 这里:searchsqlserver.techtarget.com/tip/…>
  • 这个工具正是你想要的:Full Convert Enterprise。诚然,您会丢失视图、过程和触发器,但它已针对大型表进行了高度优化。另一种翻译所有对象(程序等)的解决方案(更昂贵)是SqlTran SQL Server to MySQL
  • @borjab:SQLyog 曾经在旧版本中与 ODBC 一起使用,但现在不再使用,所以它不是这项工作的选择。

标签: mysql sql-server csv sql-server-2005 bcp


【解决方案1】:

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

【讨论】:

  • +1 - 现在是 EOL,MySQL Workbench 将包含一个迁移插件(过去版本 5.2),但现在使用以下链接:dev.mysql.com/downloads/gui-tools/5.0.html
  • 不想转换 DATE 或 DATETIME 列 :(
  • 注意:目前,MySQL 迁移工具包不适用于 Linux(来自dev.mysql.com/doc/migration-toolkit/en/…
  • 请注意,My SQL Migration Toolkit 需要 JDK 5 update 8 或更高版本的 32 位版本(必须是版本 5,版本 6 将无法使用),您可以在此处下载:@987654324 @
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 2012-09-16
          • 2011-03-02
          • 1970-01-01
          • 1970-01-01
          • 2023-03-22
          • 1970-01-01
          • 1970-01-01
          • 2010-10-22
          • 2017-12-06
          相关资源
          最近更新 更多