将数据从 MySQL 迁移到 SQL Server
Posted
技术标签:
【中文标题】将数据从 MySQL 迁移到 SQL Server【英文标题】:Migrating data from MySQL to SQL Server 【发布时间】:2012-05-14 14:19:51 【问题描述】:我希望。我的第一个想法是以 .bak 格式备份数据并转储到 SQL Server 中。那么有没有什么办法可以得到一个.bak格式的mysql数据库备份文件呢?
另外,有没有更简单、更容易的方法?
【问题讨论】:
您始终可以将转储文件扩展名指定为 .bak .bak 是特定于 SQL Server 的专有二进制格式。 MySQL 只能转储到基于文本的文件,这些文件具有用于重建 db/tables/data 的原始 SQL 语句。您可以将该转储文件加载到 sql server 的控制台中,然后将其作为一长串命令运行。 【参考方案1】:您是否从 MS SQL(标准版或更高版本随附)尝试 SSIS? 我不知道您要传输什么,但表格和视图通过这种方式很容易:
-
创建一个新的 MS SQL 数据库(空)
右键数据库选择任务->导入数据
作为源,您选择 mySQL 驱动程序(需要先安装 - http://dev.mysql.com/downloads/connector/odbc/)
选择数据库,连接它,然后跟随助手选择视图和表
在助手结束时,您可以保存 SSIS 包并使用 Visual Studio Business Intelligence 中的 SSIS 项目对其进行编辑(还附带 MS SQL 标准或更高版本),或者您只需运行它。如果您遇到传输/转换问题,您可能需要使用 Studio 版本对其进行编辑并修改包以处理有问题的表/列。
【讨论】:
【参考方案2】:我希望您不必这样做,但作为最后的手段,您可以生成自定义 SQL 数据转储,如下所示;
SELECT CONCAT_WS( ' '
, 'INSERT INTO [dbo].[table_name] (col1,col2) VALUES'
, col1
, CONCAT( '"', col2, '"' )
, ';'
) AS '-- Inserts'
FROM table_name
ORDER BY col1 ASC;
这可以像您喜欢的那样复杂,但我只建议您在将数据导入 SQL Server 时遇到问题,例如:自动数据转换问题。除非您的数据量很大,否则您最好使用mysqldump
并通过例如过滤输出。 sed
或 perl
。
【讨论】:
以上是关于将数据从 MySQL 迁移到 SQL Server的主要内容,如果未能解决你的问题,请参考以下文章
怎么将数据库从Oracle迁移到SQL Server,或从Oracle迁移到MySQL
从 MySQL 到 SQL Server 的 Hibernate + Spring 迁移