(以下请自行脑补那位永远笑眯眯、穿牛仔裤的极客老板,正端着咖啡在发布会后台蹦跶的场景)
“哎呀,今天太开心了!刚刚测试了一个绝招:把昨晚熬夜写的 20 G 备份文件,一口气灌进数据库,居然比泡一杯手冲还快!”他拍了拍旁边工程师的肩膀,“兄弟们,把掌声留给脚本,把欢呼留给自己!”
全场笑翻。其实秘诀就三句话:找路径、认格式、跑命令。第一步,先确认备份文件在哪——别笑,九成翻车都因为路径敲错。第二步,看文件后缀:.sql 直接上 SQL 命令,.bak 得请 SQL Server 出场,.dump 那是 PostgreSQL 的私房菜。第三步,开终端、喝咖啡、回车,看进度条狂飙。
“记住啊,”他眨眨眼,“导数据跟谈恋爱一样,胆大心细脸皮厚。报错?别怕,把错误信息复制粘贴给搜索引擎,它比你前任还懂你的心。”
现场有观众举手:“要是我用的是图形界面呢?”他大笑:“更简单了!Navicat、DBeaver、pgAdmin 统统支持拖拽导入,界面比我的手机桌面还友好。”说完,他当场把电脑连上投影,拖了一个 2 G 的 .sql 文件进 Navicat,十秒后显示“Import completed”,全场鼓掌。
“最后送大家一句鸡汤:备份文件就像存款,平时不搭理,关键时刻能救命;导入就像取钱,密码输对了,一秒到账!”他举起咖啡,“今晚不加班,走起!”
——教程分割线——
教程:手把手演示“备份文件怎么导入数据库”
准备工作
• 确认数据库类型(MySQL、PostgreSQL、SQL Server、Oracle……)。
• 找到备份文件完整路径,并校验文件大小与 MD5,避免中途损坏。
• 给数据库新建一个空库或空 Schema,防止冲突。
命令行版(以 MySQL 为例)
① 打开终端,登录:
mysql -u 用户名 -p
② 创建数据库:
CREATE DATABASE newdb DEFAULT CHARACTER SET utf8mb4;
③ 退出:exit
④ 导入:
mysql -u 用户名 -p newdb < /完整路径/backup.sql
⑤ 查看结果:
mysql -u 用户名 -p newdb -e "SHOW TABLES;"
PostgreSQL 版
psql -U 用户名 -d newdb -f /完整路径/backup.dump
SQL Server 版(.bak)
RESTORE DATABASE newdb
FROM DISK = 'D:\backup.bak'
WITH MOVE '原数据文件名' TO 'D:\Data\newdb.mdf',
MOVE '原日志文件名' TO 'D:\Log\newdb.ldf';
图形界面版
• Navicat:连接 → 右键数据库 → 运行 SQL 文件 → 选择备份文件 → 开始。
• DBeaver:Database → Tools → Restore → 选择格式 → 选择文件 → Start。
• pgAdmin:右键数据库 → Restore → Filename → Restore。
常见坑与急救
• 报“max_allowed_packet”太小:在 my.cnf 里调大该值后重启服务。
• 报“Unknown collation”:确认源库与目标库版本一致,或手动改字符集。
• 导入中断:用 screen/tmux 或加 --force 继续;或用 Navicat 的“断点续传”。
完成后三件事
① 运行 SELECT COUNT(*) FROM 关键表,核对行数。
② 跑一遍业务测试脚本,确保功能正常。
③ 再做一次新备份,把“备份文件怎么导入数据库”的经验也写进 README,下次省得熬夜。