Ric*_*son 65
SQL Server中的.BAK文件采用Microsoft磁带格式(MTF)参考:http://www.fpns.net/willy/msbackup.htm
bak文件可能包含SQL Server用于存储数据库的LDF和MDF文件.
您将需要使用SQL Server来提取这些.SQL Server Express是免费的,可以完成这项工作.
因此,安装SQL Server Express版本,然后打开SQL Server Powershell.执行sqlcmd -S <COMPUTERNAME>\SQLExpress(以管理员身份登录)
然后发出以下命令.
restore filelistonly from disk='c:\temp\mydbName-2009-09-29-v10.bak';
GO
Run Code Online (Sandbox Code Playgroud)
这将列出备份的内容 - 您需要的是第一个告诉您逻辑名称的字段 - 一个是实际数据库,另一个是日志文件.
RESTORE DATABASE mydbName FROM disk='c:\temp\mydbName-2009-09-29-v10.bak'
WITH
MOVE 'mydbName' TO 'c:\temp\mydbName_data.mdf',
MOVE 'mydbName_log' TO 'c:\temp\mydbName_data.ldf';
GO
Run Code Online (Sandbox Code Playgroud)
此时您已解压缩数据库 - 然后安装Microsoft的"Sql Web数据管理员".与此导出工具一起,您将拥有一个包含数据库的SQL脚本.
我没有找到办法直接做到这一点.
相反,我将bak文件导入SQL Server 2008 Express,然后使用MySQL Migration Toolkit.
像魅力一样工作!
MySql有一个从microsoft sql导入db的应用程序.脚步:
在这个问题中,答案没有及时更新。所以很高兴地说,在 2020 年迁移MsSQL到MySQL这里非常容易。像RebaseData这样的在线转换器将一键完成您的工作。您只需上传来自的.bak文件MsSQL并将其转换.sql为可读的格式即可MySQL。
附加说明:这不仅可以转换您的.bak文件,而且该站点还适用于您想要的所有类型的数据库迁移。