MySQL 备份与恢复:mysqldump 命令实操,全量备份 + 增量备份
前言数据库数据是业务核心资产误删、磁盘损坏、勒索病毒都会造成数据丢失。mysqldump是 MySQL 官方自带备份工具无需额外安装支持全量逻辑备份搭配 binlog 二进制日志可实现增量备份故障后精准恢复数据。本文覆盖日常运维全套备份恢复脚本。一、mysqldump 全量备份逻辑备份1. 备份单个数据库# 基础语法 mysqldump -uroot -p --single-transaction shop_db shop_full_20260718.sql参数说明--single-transactionInnoDB 快照备份不锁表线上业务推荐 xxx.sql输出备份文件2. 备份全部数据库mysqldump -uroot -p --all-databases --single-transaction all_db_full.sql3. 只备份表结构不导出数据mysqldump -uroot -p -d shop_db shop_schema.sql4. 只导出指定表数据mysqldump -uroot -p shop_db user order user_order.sql5. 压缩备份节省磁盘mysqldump -uroot -p --single-transaction shop_db | gzip shop_full.sql.gz二、全量备份恢复操作# 解压压缩包 gzip -d shop_full.sql.gz # 登录MySQL执行导入 mysql -uroot -p shop_db shop_full.sql三、增量备份基于 binlog 二进制日志1. 开启 binlogmy.cnf 配置log_bin mysql-bin binlog_format row expire_logs_days 7重启 MySQL 生效所有增删改操作都会记录到 binlog 文件。2. 增量恢复语法# 指定起始、结束日志位置恢复 mysqlbinlog --start-position1000 --stop-position5000 mysql-bin.000003 | mysql -uroot -p # 指定时间区间恢复 mysqlbinlog --start-datetime2026-07-18 09:00:00 --stop-datetime2026-07-18 12:00:00 mysql-bin.000003 | mysql -uroot -p四、运维备份规范每日凌晨定时全量备份保留 7 天备份文件binlog 日志至少保留 7 天用于误删数据回滚备份文件同步至异地服务器防止磁盘损坏定期测试恢复流程避免备份文件损坏无法使用生产禁止使用--lock-tables锁表备份影响业务写入。