【MySQL】mysqldump使用方法

mysqldump 基本语法

mysqldump 命令的基本语法格式如下:

bash 复制代码
mysqldump -u [username] -p[password] [database_name] > [output_file.sql]

常用参数说明

  • -u:指定 MySQL 用户名
  • -p:输入密码(注意 -p 和密码之间无空格)
  • --databases:备份指定数据库
  • --all-databases:备份所有数据库
  • --single-transaction:适用于 InnoDB 表,确保备份一致性
  • --lock-tables:锁定所有表后再备份(适用于 MyISAM)
  • --routines:包含存储过程和函数
  • --triggers:包含触发器
  • --events:包含事件
  • --no-data:仅导出表结构

备份单个数据库

备份名为 test_db 的数据库到 backup.sql 文件:

bash 复制代码
mysqldump -u root -p test_db > backup.sql

备份多个数据库

备份 db1db2 两个数据库:

bash 复制代码
mysqldump -u root -p --databases db1 db2 > multi_backup.sql

备份所有数据库

备份 MySQL 服务器上的所有数据库:

bash 复制代码
mysqldump -u root -p --all-databases > all_db_backup.sql

仅备份表结构

备份 test_db 的表结构(不含数据):

bash 复制代码
mysqldump -u root -p --no-data test_db > structure_only.sql

仅备份特定表

备份 test_db 中的 table1table2

bash 复制代码
mysqldump -u root -p test_db table1 table2 > tables_backup.sql

生成压缩备份

直接生成压缩的备份文件(适用于大数据量):

bash 复制代码
mysqldump -u root -p test_db | gzip > backup.sql.gz

从备份恢复数据库

恢复备份文件到数据库:

bash 复制代码
mysql -u root -p test_db < backup.sql

高级用法:定时备份

结合 crontab 实现自动备份,例如每天凌晨备份:

bash 复制代码
0 0 * * * /usr/bin/mysqldump -u root -p password test_db > /backups/daily_backup_$(date +\%Y\%m\%d).sql

注意事项

  • 密码可省略,执行时会提示输入
  • 确保有足够的磁盘空间存放备份文件
  • 恢复前建议先创建目标数据库
  • 大数据库建议使用 --single-transaction 避免锁表
相关推荐
数据知道5 小时前
PostgreSQL 故障排查:如何找出数据库中最耗时的 SQL 语句
数据库·sql·postgresql
qq_12498707535 小时前
基于SSM的动物保护系统的设计与实现(源码+论文+部署+安装)
java·数据库·spring boot·毕业设计·ssm·计算机毕业设计
枷锁—sha5 小时前
【SRC】SQL注入WAF 绕过应对策略(二)
网络·数据库·python·sql·安全·网络安全
Coder_Boy_5 小时前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端
Gain_chance5 小时前
35-学习笔记尚硅谷数仓搭建-DWS层最近n日汇总表及历史至今汇总表建表语句
数据库·数据仓库·hive·笔记·学习
此生只爱蛋5 小时前
【Redis】主从复制
数据库·redis
马猴烧酒.5 小时前
【面试八股|JAVA多线程】JAVA多线程常考面试题详解
java·服务器·数据库
天天爱吃肉82186 小时前
跟着创意天才周杰伦学新能源汽车研发测试!3年从工程师到领域专家的成长秘籍!
数据库·python·算法·分类·汽车
大巨头6 小时前
sql2008 数据库分页语句
数据库
m0_715575346 小时前
使用PyTorch构建你的第一个神经网络
jvm·数据库·python