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
备份多个数据库
备份 db1 和 db2 两个数据库:
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 中的 table1 和 table2:
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避免锁表