如何将数据从 SQL Server 2005 导出到 MySQL [关闭]
-
08-06-2019 - |
题
我一直在用头撞 SQL Server 2005
试图获取大量数据。我得到了一个包含近 300 个表的数据库,我需要将其转换为 MySQL 数据库。我的第一个调用是使用 bcp,但不幸的是它不会生成有效的 CSV - 字符串未封装,因此您无法处理任何包含带有逗号的字符串的行(或任何您用作分隔符的行)而且我仍然需要手动编写所有创建表语句,因为显然 CSV 不会告诉您有关数据类型的任何信息。
更好的是如果有某种工具可以同时连接到 SQL Server 和 MySQL,然后进行复制。您会丢失视图、存储过程、触发器等,但将仅使用基本类型的表从一个数据库复制到另一个数据库并不困难......是吗?
有人知道这样的工具吗?我不介意它做了多少假设或发生了什么简化,只要它支持整数、浮点、日期时间和字符串。我必须做很多修剪、标准化等工作。无论如何,我不关心保存密钥、关系或类似的东西,但我需要快速获取初始数据集!
没有正确的解决方案
其他提示
我发现的最好的方法是 MySQL 迁移工具包 由 MySQL 提供。我已经成功地将它用于一些大型迁移项目。
使用 MSSQL Management Studio,我已经使用 MySQL OLE DB 转换表。右键单击数据库并转到“任务 -> 导出数据”,从那里您可以指定 MsSQL OLE DB 源、MySQL OLE DB 源并在两个数据源之间创建列映射。
您很可能希望在 MySQL 目标上提前设置数据库和表(导出将希望自动创建表,但这通常会导致失败)。您可以通过右键单击数据库,使用“任务->生成脚本”在 MySQL 中快速创建表。生成创建脚本后,您需要逐步搜索/替换 MSSQL 到 MYSQL 中存在的关键字和类型。
当然,您也可以像平常一样备份数据库,并找到一个实用程序,可以在 MYSQL 上恢复 MSSQL 备份。但我不确定是否存在。
尽管我不确定是否有一种好方法可以自动将架构从一个数据库复制到另一个数据库(也许这是您的问题),但滚动您自己的 PHP 解决方案肯定会起作用。
如果您只是复制数据,和/或您需要自定义代码来在两个数据库之间的修改模式之间进行转换,我建议使用 PHP 5.2+ 和 PDO 库。您将能够使用 PDO ODBC(并使用 MSSQL 驱动程序)进行连接。我在使用其他库将大型文本字段和多字节字符从 MSSQL 转换为 PHP 时遇到了很多问题。
另一个可以尝试的工具是 SQLMaestro 套件 - http://www.sqlmaestro.com 确定精确的工具有点棘手,但他们有各种各样的工具,有免费的,也有付费的,可以处理多个数据库平台的各种任务。我建议首先尝试 MySQL 的数据向导工具,因为我相信它将拥有您需要的适当的“导入”工具。