sql怎么导入数据库:本地终端直接执行文件导入的实操方式

sql怎么导入数据库:本地终端直接执行文件导入的实操方式

之前接手项目迁移的时候,卡在sql怎么导入数据库这个问题上,照着网上零散的步骤瞎操作,连续好几次导入失败,数据库要么是空数据,要么直接报错崩溃,折腾了大半天,最后摸出了终端直接导入的靠谱操作,全程都是实打实的本地实操,没有任何虚的步骤。

最开始图省事,直接打开数据库可视化工具,用自带的导入功能上传SQL文件。那个SQL文件体积不算小,差不多两百多兆,点击导入之后,页面一直转圈加载,等待十几分钟后直接弹窗超时,数据库后台直接断开了连接。反复重试三次,结果都是一模一样,可视化工具根本承载不了稍大的SQL文件,完全是白费功夫。

当时压根没意识到是工具的问题,只以为是SQL文件本身有语法错误。然后就逐行打开文件检查,密密麻麻的代码看得头昏,排查了半个多小时,没找到任何报错的语法问题。文件在本地预览完全正常,结构、数据表、数据内容都是完整的,这一刻突然反应过来,问题根本不在文件本身,是可视化导入的方式有局限。

放弃了图形化工具,转而用服务器终端和本地cmd命令行操作,这也是最后稳定能用的导入方式。首先要确定自己的数据库账号、密码,还有即将导入的目标数据库名称,提前在数据库里新建好对应的空数据库,字符集统一选utf8mb4,避免后续中文数据乱码,这一步少做一步都会出问题。

打开电脑终端,直接输入导入命令,格式简单且固定,不需要复杂配置。找到SQL文件的本地绝对路径,搭配数据库登录参数,完整命令就是mysql -u用户名 -p密码 目标数据库名 < 文件绝对路径。输入回车之后,终端不会有花哨的进度提示,只会静默执行,体积大的文件等待几分钟,小文件十几秒就能跑完,全程不需要手动干预。

中途还出过一次低级错误,复制文件路径的时候多带了一个空格,导致命令执行直接报错,提示找不到指定SQL文件。删掉多余空格重新执行后,命令顺利跑通,结束之后登录数据库,所有数据表、原始数据全部完整导入,没有缺失、没有乱码,完全恢复了项目需要的数据库状态。

还有一个无意间发现的细节,导入的时候千万不要中途关闭终端、断开网络,哪怕命令界面没有动静,后台也在持续解析SQL语句并写入数据。上次中途切页面操作,直接导致数据导入一半中断,数据库表里只有一半数据,后续也没法续传,只能清空数据库重新导入,白白浪费了很多时间。

后续每次迁移数据库、恢复数据,都固定用这个终端命令导入的方法,不管是几十兆的小文件还是几百兆的大文件,都能稳定执行成功。不用依赖第三方工具,也不用繁琐的配置,只要路径、账号、数据库名称准确,就能一次性完成导入操作。

最后一次操作结束后,直接保存了这条导入命令,整理好对应的参数填写规范,每次需要导入SQL文件时,直接替换对应信息执行即可,不用再重新摸索排查问题。

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