mysql如何导入sql文件:命令行直接执行本地SQL文件完成数据迁移

mysql如何导入sql文件:命令行直接执行本地SQL文件完成数据迁移

之前接手旧项目迁移的时候,卡在mysql如何导入sql文件这个操作上半天,网上五花八门的教程看得人头昏,试了好几种乱七八糟的方法,要么导入失败,要么数据残缺,最后硬生生靠反复实操摸出了最稳妥、最适配本地服务器的导入方式,全程不用复杂工具,纯命令行操作就能搞定。

最开始完全图省事,直接打开数据库可视化工具,拖拽sql文件上传导入。本以为点点鼠标就能完事,结果刚上传一半就直接报错断开。文件不算小,大概两百多兆,可视化工具的批量导入机制根本扛不住,频繁超时中断,每次重启导入都要从头开始,折腾了快一个小时,一点进度都没有。

后来才反应过来,可视化工具只适合小体量的sql文件,大文件导入必须用原生的mysql命令行。当时直接关掉了所有图形化软件,打开电脑的命令提示符,先一步步核对本地MySQL的运行状态,确认服务正常启动后,才开始准备导入操作。

先进入MySQL的安装bin目录是基础步骤,很多人导入失败都是跳过了这一步。Windows系统下直接cd切换到对应路径,Mac和Linux系统则可以直接全局调用mysql命令,不用繁琐切换目录。这一步如果路径不对,后续所有导入指令都会直接报错,没有任何执行效果,之前踩过好几次这个无脑的坑。

输入连接数据库的指令后,需要先创建并选中目标空数据库。千万不要直接导入,很多新手会忽略这个细节,直接执行导入命令,最后系统找不到对应数据库,直接提示失败。新建数据库不用复杂编码,简单一句创建指令就行,字符集统一选utf8mb4,能避免后续中文乱码的问题,选好数据库之后,才算搭好了导入的基础环境。

真正核心的导入指令特别简单,固定格式 source 本地sql文件绝对路径。这里有个很关键的细节,路径里绝对不能出现中文和空格,不然MySQL识别不到文件,会直接导入终止。当时就是因为文件存在桌面,路径带了中文用户名,反复报错,修改文件存放路径到纯英文目录后,立马就开始正常导入。

导入过程中命令行会持续滚动日志,不用做任何操作,静静等待就行。如果文件内有数据表重复,会出现少量提示语句,不用慌张,属于正常现象,不会影响整体数据导入。全程不需要手动干预,等待日志停止刷新,就代表导入操作完成了。

导入结束后,不用凭感觉判断是否成功,直接在命令行查询数据表,就能清晰看到所有表结构和数据都完整同步过来。对比之前可视化工具频繁出错的情况,命令行导入的稳定性高出太多,不管是几十兆的小文件还是几百兆的大文件,都能平稳跑完流程。

折腾好久才搞明白,网上很多花哨的导入方法根本没必要。所谓的快捷工具导入,大多存在兼容性和超时问题,原生命令行虽然看着朴素,但却是最靠谱、零成本的导入方式,适配所有MySQL版本,没有任何多余限制。

那天晚上弄完所有数据迁移,关掉命令行的时候,电脑风扇终于安静了下来,折腾一下午的卡顿和报错终于彻底消失。

了解更多百科知识请访问 百科