马老师教你玩转MySQL:数据导出导入的幽默指南
MYSQL导出导入

首页 2025-09-02 00:37:54

正文(马老师口吻,约700字)
各位同学好,我姓马,但不是那匹“马”,江湖上人都叫我“马老师”。今天不讲电商,也不谈新零售,咱们聊点接地气的:MySQL 的“导出导入”。听起来像把大象塞进冰箱,其实也就三步:把门打开,把大象放进去,把门关上——哦不,是把数据拎出来,再塞回去!
想当年我创业,最怕半夜电话响——“马老师,数据库崩了!”我啪地坐起来,先摸摸头顶还在不在,再问:“备份呢?”对面沉默三秒,空气里都是尴尬的味道。从那以后,我悟了:数据就像私房钱,得定期藏,还得会取。今天我就把这套“藏钱取钱”的武林绝学传给你们。
第一式:导出——“乾坤大挪移”
打开黑窗口,别怕黑,黑里都是机会。敲下:
mysqldump -u 你账号 -p 你密码 库名 > 马老师.sql
回车,屏住呼吸,啪嗒一声,整个库就被你“吸星大法”吸进一个.sql文件。文件多大?几M到几G不等,看你库存的是“钢镚”还是“金砖”。记住,别手抖,把>打成<,否则你会把空文件塞回库里,现场表演“删库跑不动”。
第二式:传输——“凌波微步”
.sql文件生成了,得搬家。用U盘、用云盘、用飞鸽传书都行,只要别让网管逮到。某次我把它塞进微信文件助手,结果文件太大,微信说“兄弟你发的是数据库不是表情包”,当场社死。自那以后,我只用rsync——低调奢华,速度感人。
第三式:导入——“斗转星移”
新服务器上,先建好同名空库,再祭出大招:
mysql -u 新账号 -p 新密码 库名 < 马老师.sql
屏幕刷刷滚,像瀑布又像银行点钞。最后一行“Query OK”,你就算把大象安全关回冰箱。此时泡杯茶,听硬盘转,人生圆满。
彩蛋提醒
  1. 字符集要对齐,utf8mb4别写成utf8,否则emoji表情会变成“口口口”,你的用户会以为进了豆腐块工厂。
  2. 大库记得加--single-transaction,别锁表,否则隔壁产品经理以为你又在搞“双十一预售”。
  3. 定期演练恢复,别等真出事才发现.sql文件里全是“NULL NULL NULL”,那画面比PPT还空白。
好了,秘籍讲完,赶紧把自家数据库“倒腾”一遍。万一哪天老板问:“听说你会MySQL导出导入?”你微微一笑,回他一句:“小意思,我马老师可是练过的!”
——江湖路远,数据常伴,备份不止,折腾不息!

教程:MYSQL导出导入·超细步骤版
(以下命令均在Linux/Mac终端或Windows PowerShell中执行)
  1. 导出(备份)
    1.1 整库导出
    mysqldump -u 用户名 -p --databases 库名 > /路径/备份_日期.sql
    示例:
    mysqldump -u root -p --databases shopdb > /home/backup/shopdb_20250902.sql
1.2 仅导出某几张表
mysqldump -u 用户名 -p 库名 表1 表2 > /路径/表备份.sql
1.3 只导出结构(不含数据)
mysqldump -u 用户名 -p -d 库名 > /路径/结构.sql
1.4 只导出数据(不含结构)
mysqldump -u 用户名 -p -t 库名 > /路径/数据.sql
1.5 大数据库优化参数
mysqldump -u 用户名 -p --single-transaction --quick --routines --triggers --events 库名 > /路径/全量.sql
  1. 传输备份文件
    2.1 本地到本地:直接复制即可。
    2.2 本地到远程:
    scp /路径/备份_日期.sql 用户名@远程IP:/远程路径/
  2. 导入(恢复)
    3.1 在目标服务器登录MySQL,先建空库:
    mysql -u 用户名 -p
    CREATE DATABASE 库名 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    EXIT;
3.2 执行导入
mysql -u 用户名 -p 库名 < /路径/备份_日期.sql
3.3 只导入单表
mysql -u 用户名 -p 库名
USE 库名;
SOURCE /路径/单表.sql;
  1. 常见错误排查
  • 1049 Unknown database:库名打错或没提前创建。
  • 2006 MySQL server has gone away:文件过大,调大max_allowed_packet。
  • 字符集乱码:导出导入均加--default-character-set=utf8mb4。
  1. 自动化脚本示例(每天凌晨2点备份)
    cat /home/cron/db_backup.sh
    #!/bin/bash
    DATE=(date +%Y%m%d) mysqldump -u root -p密码 --single-transaction shopdb > /home/backup/shopdb_{DATE}.sql
    find /home/backup -mtime +7 -name "*.sql" -delete
chmod +x /home/cron/db_backup.sh
crontab -e
0 2 * * * /home/cron/db_backup.sh
至此,MYSQL导出导入从“马老师段子”到“实操手册”已全部奉上,祝各位备份愉快,跑路不慌!
MySQL连接就这么简单!本地远程、编程语言连接方法一网打尽
还在为MySQL日期计算头疼?这份加一天操作指南能解决90%问题
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道