当前位置:首页 > 问答 > 正文

MSSQL怎么快速搬到MySQL,手把手教你一步步操作不复杂

(来源:知乎专栏《数据库迁移实战》)要把MSSQL数据库搬到MySQL,听起来好像需要很专业的技术,但其实只要跟着步骤来,一点也不复杂,你不用懂那些深奥的数据库原理,我们的目标就是用最简单直接的方法把数据挪过去,整个过程就像搬家,先打包整理(从MSSQL导出),再找个新房子(在MySQL里建好结构),最后把家具物品搬进去(把数据导入MySQL)。

第一步:准备工作,清点家当

在开始搬家之前,你得知道有什么东西要搬,连接上你的MSSQL数据库服务器(比如用SQL Server Management Studio这个工具),重点看三个方面:

  1. 表结构: 看看数据库里有哪些表,每个表里有哪些字段(比如姓名、年龄这种),特别要注意字段的类型,比如MSSQL里的nvarchar在MySQL里通常对应varchardatetime两边都有但格式可能微调,把这些结构记录下来,或者直接用工具截图。
  2. 数据本身: 估算一下数据量有多大,有多少条记录,这能帮你判断后续导出导入的时间。
  3. 关键关系: 看看有没有那种设置了自动增长的字段(比如ID号,每加一条数据自动+1),还有表与表之间的关联(外键),这些在重建的时候要特别注意,不然数据就对不上了。

(来源:CSDN博客《数据迁移经验谈》)这一步不用着急,花点时间弄清楚,后面会省很多事。

第二步:选择合适的“搬家工具”

手动一个个建表再导数据太麻烦了,我们最好用现成的工具,这里推荐两个最常用的:

  • MySQL官方工具:MySQL Workbench的迁移向导 (来源:MySQL官方文档)这是MySQL自家出的工具,对MySQL兼容性最好,它里面有一个叫“Migration Wizard”(迁移向导)的功能,可以一步步引导你从MSSQL连过来,自动帮你转换很多数据类型,特别适合新手。
  • 第三方工具:Navicat Premium (来源:Navicat官网使用指南)这是一个功能很强大的数据库管理工具,要付费,但如果你能找到试用版或者有条件使用,它迁移起来非常直观和快速,它支持很多种数据库之间的互导。

选哪个都行,原理差不多,下面我们以更容易免费获取的MySQL Workbench为例来讲。

MSSQL怎么快速搬到MySQL,手把手教你一步步操作不复杂

第三步:在MySQL这边准备好“新家”

在动手迁移之前,你需要在MySQL里创建一个空的数据库,用来接待MSSQL过来的数据。

  1. 打开MySQL Workbench,连接上你的MySQL服务器。
  2. 新建一个数据库,给它起个名字,比如my_migrated_db,字符集建议选utf8mb4,排序规则选utf8mb4_general_ci,这样对中文兼容性好。

这个空数据库就是你的新家,现在里面什么都没有,等着你把结构和数据搬进来。

第四步:使用迁移向导自动搬运

MSSQL怎么快速搬到MySQL,手把手教你一步步操作不复杂

这是最关键的一步,但工具已经帮我们做了大部分工作。

  1. 在MySQL Workbench的菜单里,找到 Database -> Migration Wizard
  2. 选择源数据库: 在第一步中,选择Microsoft SQL Server作为源数据库类型,然后需要填写连接MSSQL的信息:服务器地址、端口(一般是1433)、用户名、密码,以及你要迁移的那个数据库名,填好后点测试连接,成功就继续。
  3. 选择目标数据库: 下一步,目标自然就是MySQL,它会自动读取你当前MySQL Workbench的连接,确认一下就行。
  4. 映射对象: 这是核心步骤,工具会扫描MSSQL数据库里的所有表,然后让你确认哪些要迁移,它会自动尝试把MSSQL的数据类型转换成MySQL的。你一定要仔细检查这个映射列表! 特别是上面提到的那些特殊类型,比如自动增长字段、时间日期类型,看看工具转换得对不对,不对的话可以手动调整,这是避免错误的关键。
  5. 开始迁移: 检查无误后,就可以开始迁移了,工具会先在新数据库里创建所有的表结构(建空壳),然后开始传输数据,你会看到一个进度条,数据量大的话,需要耐心等一会儿。

(来源:个人博客《一次成功的MSSQL到MySQL迁移记录》)迁移向导的好处是,它试图自动化整个过程,减少了手动操作出错的可能。

第五步:迁移后的重要检查——验房

数据搬完了,不代表就成功了,一定要做检查,就像搬家后要清点物品一样。

  1. 检查数据量: 随机挑几个重要的表,分别在MSSQL和MySQL里执行SELECT COUNT(*) FROM 表名,看看记录总数是不是一样,这是最基本的。
  2. 抽查数据内容: 找几个表,看看里面的数据对不对,特别是那些有长文本、特殊符号(比如表情符号)、日期的字段,容易出问题。
  3. 测试应用连接: 如果你的程序已经改好了连接MySQL的配置,用测试环境跑一下核心功能,确保程序能正确地从新数据库里读写数据,这是最终的验收标准。

可能会遇到的坑和解决办法:

  • 语法差异: MSSQL和MySQL的SQL语句有些细微差别,比如MySQL的TOP关键字是LIMIT,如果你的表里有视图或者存储过程,迁移工具可能处理不好,这些往往需要手动重写。
  • 自增字段问题: 迁移后,MySQL里的自增字段可能会从1开始,如果原有数据ID不能变,需要在迁移后手动执行SQL语句调整自增起始值。
  • 中文乱码: 确保在MySQL创建数据库和表时,都使用了utf8mb4字符集,这是避免乱码的最好方法。

用MySQL Workbench这样的工具,把MSSQL搬到MySQL可以变得很简单:准备 -> 选工具 -> 在MySQL建空库 -> 用向导迁移 -> 仔细检查,别怕,一步一步来,你完全可以自己搞定,如果一次不成功,就对着检查步骤看看是哪里出了问题,调整后再试。