如何将SQL Server数据库导出到MySQL?

mat*_*ins 81 mysql sql-server database-migration

我正在尝试从SQL Server数据库备份文件(.bak)转换为MySQL.这个问题和答案非常有用,我已经成功导入了数据库,但现在我仍然坚持导出到MySQL.

建议使用MySQL Migration Toolkit,但似乎已被MySQL Workbench取代.是否可以使用MySQL Workbench以与迁移工具相同的方式从SQL Server迁移?

或者迁移工具包是否仍可在某处使用?

Jav*_*diz 48

您可以使用MySQL Workbench,它提供了一种使用更少的时间和精力将数据和应用程序从Microsoft SQL Server快速迁移到MySQL的方法.

这个工具有很多很酷的功能,如:

  • 数据库迁移 - 支持从Microsoft SQL Server,Sybase ASE和PostgreSQL进行迁移.
  • 迁移项目管理 - 允许配置,复制,编辑,执行和计划迁移.

阅读更多 http://www.mysql.com/products/workbench/migrate/


小智 22

我使用sqlyog从mssql迁移到mysql.我尝试了Migration toolkit和workbench,但是喜欢sqlyog的SJA.我可以安排导入过程,并可以使用WHERE子句进行增量导入.

在此输入图像描述


Dav*_*tas 7

PhpMyAdmin有一个导入向导,允许您导入MSSQL文件类型.

有关它支持的数据库脚本类型,请参阅http://dev.mysql.com/doc/refman/5.1/en/sql-mode.html.


Pro*_*ken 6

如上所述,如果您的数据包含数据中的制表符,逗号或换行符,那么导出和导入CSV将非常困难.值将溢出字段,您将收到错误.如果您的任何长字段包含带有换行符的多行文本,则此问题会更严重.

我在这些情况下的方法是使用BCP命令行实用程序从SQL服务器导出数据,然后在MySQL中使用LOAD DATA INFILE .. INTO TABLE命令重新读取数据文件.BCP是最古老的SQL Server之一命令行实用程序(可以追溯到SQL服务器的诞生 - v6.5)但它仍然存在,并且仍然是最简单,最可靠的数据输出方式之一.

要使用此技术,您需要在MySQL中使用相同或等效的模式创建每个目标表.我通过右键单击SQL企业管理器中的数据库,然后单击任务 - >生成脚本...来为所有表创建一个SQL脚本.然后,您必须手动将脚本转换为MySQL兼容的SQL(绝对是作业中最糟糕的部分),最后在MySQL数据库上运行CREATE TABLE命令,这样就可以将列表与SQL Server版本匹配,列为空,并准备好数据.

然后,从MS-SQL端导出数据,如下所示.

bcp DatabaseName..TableName out TableName.dat -q -c -T -S ServerName -r \0 -t !\t!
Run Code Online (Sandbox Code Playgroud)

(如果您使用的是SQL Server Express,请使用-S值,如下所示:-S"ComputerName\SQLExpress")

这将创建一个名为TableName.dat的文件,其字段由![tab]分隔!和\ 0 NUL字符分隔的行.

现在将.dat文件复制到MySQL服务器上的/ tmp并加载到MySQL端,如下所示:

LOAD DATA INFILE '/tmp/TableName.dat' INTO TABLE TableName FIELDS TERMINATED BY '!\t!' LINES TERMINATED BY '\0';
Run Code Online (Sandbox Code Playgroud)

不要忘记必须在MySQL端创建表(本例中的TableName).

在转换SQL模式时,此过程非常简单,但它适用于最困难的数据,因为它使用平面文件,您永远不需要说服SQL Server与MySQL通信,反之亦然.


Him*_*der 6

如果你有一个MSSQL兼容的SQL转储,你可以使用这个在线工具逐个转换为MySQL查询

http://burrist.com/mstomy.php

希望它能节省你的时间


小智 5

您可以使用Data Loader工具轻松完成此操作。在使用这个工具之前我已经这样做过并且发现它很好。


Mar*_*tin 3

看来您是正确的:迁移工具包将与 MySQL Workbench 集成 - 但我认为这还没有完成。请参阅 MySQL GUI 工具(其中包括迁移工具包)的生命周期终止公告:

http://www.mysql.com/support/eol-notice.html

MySQL 维护 MySQL GUI 工具包的档案:

http://dev.mysql.com/downloads/gui-tools/5.0.html