mysql - 将 .bak 导入 MySQL (.sql)

标签 mysql sql-server database import

我想将 MS SQL SERVER2008 R2 数据库备份导入到 MySQL Server。有关如何将 .bak 转换为 .sql 以便将其导入 MySQL 数据库服务器的任何帮助吗?

我已经阅读了与此相关的其他主题,但到目前为止没有一个有效。

谢谢。

最佳答案

您可以将数据库恢复到本地版本的 SQL Server(您可以下载免费评估版来执行此操作):

http://msdn.microsoft.com/en-us/evalcenter/ff459612.aspx

然后,您可以使用 Management Studio 中的导入/导出向导将表和其他对象传输到 MySQL 数据库(您可能需要在本地安装其他 ODBC 驱动程序,以便 SQL Server 建立与 MySQL 的连接)。

编辑

将数据库恢复到 SQL Server 时,不要使用笨重的 UI。使用实际的RESTORE DATABASE命令。例如:

RESTORE DATABASE foo FROM DISK = 'c:\path\foo.bak';

现在,您可能会发现原始数据库是使用放置在本地不存在的驱动器或文件夹上的文件创建的。因此,我建议临时创建一个非常简单的文件夹,名为 c:\db_temp\,给予 Everyone 帐户修改权限,然后运行以下命令:

RESTORE FILELISTONLY FROM DISK = 'c:\path\foo.bak';

这将返回一个结果集,例如:

LogicalName  PhysicalName
-----------  ------------
Foo          C:\...\foo.mdf
Foo_log      C:\...\foo_log.ldf

您需要根据上面的结果构建一个类似于以下内容的 RESTORE DATABASE 命令:

RESTORE DATABASE foo FROM DISK = 'c:\path\foo.bak'
  WITH MOVE 'Foo'     TO 'c:\db_temp\foo.mdf',
       MOVE 'Foo_log' TO 'c:\db_temp\foo_log.ldf';

关于mysql - 将 .bak 导入 MySQL (.sql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9658956/

相关文章:

sql - 如何以编程方式为过去和 future 增加两周的开始日期和结束日期?

sql - 使用绑定(bind)规则和默认值替换已弃用的 SQL Server 用户定义类型

c# - 如果尚未创建,如何从 C# 以编程方式创建 MySQL 触发器?

database - 联邦税号应该在数据库中加密吗?

mysql - 如何比较同一个 MySQL 表中的 2 条记录

mysql - 无法删除 UPDATE 查询中的 SQL 语法

mysql - MySql中设置sql_mode=only_full_group_by时如何严格字符串比较 "group by"?

mysql - 使涉及小表和大表的条件 MySQL 连接变得高效

Android:检查文件是否是有效的 SQLite 数据库

php - 使用 PHP 将加密变量保存到 MySQL 时返回错误