轻松玩转MYSQL导出导入:拆红包式数据迁移
MYSQL导出导入

首页 2025-09-01 22:39:46

今天,我的嘴角比服务器机房的灯还亮——因为 MYSQL 导出导入 这件事,被我玩成了拆红包!
第一次执行 mysqldump 的时候,终端里刷出的那一行行 “Dump completed” 就像群聊里不断跳出的“恭喜发财”。我把整个业务库打包成 20250901.sql,文件体积 2.3 G,心里却轻得能飞。
导出命令其实超简单:
mysqldump -u root -p --single-transaction --routines --triggers --databases coolapp > /backup/20250901.sql
回车一敲,进度条“蹭蹭”往上涨,我脑补自己正在给每个数据行贴“顺丰包邮”标签。
接下来是导入。新服务器空得像刚注册的云盘,我把文件 scp 过去,然后一句:
mysql -u root -p < /backup/20250901.sql
屏幕安静三秒,突然刷出 Query OK,仿佛对面回了一个“红包已领”。
为了让速度更快,我提前关了 autocommit、调大 innodb_buffer_pool_size,再顺手 set foreign_key_checks=0,整场迁移像丝滑连招,一点卡顿都没有。
最后,我在新库里跑了个校验脚本,count(*) 一对比,数据行数、checksum 完全一致。那一刻,真想给自己发个专属红包:恭喜 pony,又省下一夜加班!
——— 教程分割线 ———
MYSQL 导出导入 极简教程(零事故版)
  1. 导出
    a. 全库:
    mysqldump -u 用户名 -p --single-transaction --routines --triggers --databases db1 db2 > all.sql
    b. 单表:
    mysqldump -u 用户名 -p db1 table1 > table1.sql
    参数说明:
    • --single-transaction:保证 InnoDB 一致性快照;
    • --routines、--triggers:顺带导出存储过程和触发器;
    • --set-charset:统一字符集。
  2. 导入
    a. 登录目标服务器,把 .sql 文件传过去(scp/rsync)。
    b. 若文件较大,先提速:
    复制
    mysql -u 用户名 -p
    SET autocommit=0;
    SET unique_checks=0;
    SET foreign_key_checks=0;
    SOURCE /path/all.sql;
    COMMIT;
    c. 检查:
    SELECT COUNT(*) FROM information_schema.tables WHERE table_schema='db1';
  3. 常见坑
    • 字符集:导出导入前后都用 --default-character-set=utf8mb4;
    • 权限:确保目标库存在且用户有 CREATE、INSERT 权;
    • 空间:.sql 文件+解压后临时数据≈原库 2~3 倍,磁盘先预留;
    • 大表:可追加 --quick 参数,边读边写,防止内存爆掉。
照此操作,数据库迁移就像发完最后一个红包,轻点“完成”,万事大吉!
MySQL连接就这么简单!本地远程、编程语言连接方法一网打尽
还在为MySQL日期计算头疼?这份加一天操作指南能解决90%问题
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道