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