You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将SQL MDF数据库文件迁移导入至MariaDB

MariaDB读取.MDF文件及迁移方案解答

基础认知澄清

  • .MDF是微软SQL Server专属的主数据存储文件,属于SQL Server的私有存储格式,MariaDB本身没有任何原生功能可以直接打开、读取这种格式的文件,你之前没找到官方相关说明不是搜索遗漏,是这个功能本身就不存在。
  • 你提到的通过dump方式迁移的方案完全可行,也是目前免费迁移最稳妥的方案,不存在高门槛,新手跟着步骤操作就能完成。

面向新手的免费迁移操作步骤

方案1:SQL脚本dump迁移(推荐,全量免费无限制)

整个流程的逻辑非常简单:先把锁在.MDF里的内容通过SQL Server读出来,导出成所有数据库都能识别的通用SQL语句文件,再让MariaDB执行这个文件把数据全部重建出来,全程不需要用付费第三方工具。

  1. 先读取.MDF文件内容
    安装微软官方免费的SQL Server Express版本,将本地的.MDF文件附加到本地运行的SQL Server实例中,确认可以正常看到库内的所有表、数据,没有文件损坏问题。
  2. 导出兼容的dump脚本文件
    在SQL Server的管理工具中选中目标数据库,右键依次选择「任务」-「生成脚本」,按照向导操作:
    • 选择需要迁移的全部表、视图等对象
    • 进入高级设置项,将「脚本编写的数据类型」修改为架构和数据(只选架构的话导出的只有空表结构,没有实际存储的数据),同时将脚本兼容级别调整到较低版本,尽量规避SQL Server专属的特殊语法,减少后续导入报错概率
    • 导出得到后缀为.sql的dump脚本文件
  3. 导入到MariaDB
    打开你用的MariaDB管理工具(新手推荐用HeidiSQL这类免费可视化工具,比敲命令行简单很多),新建一个空数据库,选中这个库后直接运行刚才导出的.sql文件,等待脚本执行完成就完成了全量迁移。

方案2:CSV格式中转导入(仅适合极小体量数据库)

你查到的MariaDB支持CSV导入的信息是准确的,但这个方案只适合只有几张表的小型数据库,操作步骤如下:

  • 同样先把.MDF附加到SQL Server中,把每一张表的内容单独导出为CSV格式文件
  • 在MariaDB中手动创建和原表结构一致的空表,注意做好字段类型匹配(比如SQL Server的nvarchar类型对应MariaDB的varchar类型)
  • 用MariaDB自带的LOAD DATA INFILE命令,或者可视化工具的CSV导入功能,把每个CSV文件对应导入到建好的表中即可

注意:这个方案需要手动建表,表数量多的话重复工作量极大,且容易出现字段类型匹配错误,表量超过10张不推荐使用。

新手避坑提示

  • 不要尝试直接修改.MDF后缀、或者强行把文件拷贝到MariaDB的数据目录下读取,两个数据库的底层存储逻辑完全不同,这类操作大概率会损坏原始数据文件
  • 如果导入dump脚本时出现少量语法报错,一般是脚本里带了SQL Server独有的函数或语法,只需要把报错的语句修改为MariaDB支持的写法即可,不会影响整体数据迁移
  • 不要使用需要付费的第三方在线转换工具处理包含敏感业务数据的.MDF文件,存在数据泄露风险

内容的提问来源于stack exchange,提问作者ccuser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 14:54:26