mysqldump 基本语法
执行 mysqldump 时需要指定连接数据库的参数(如用户名、密码)和导出目标。基础命令格式如下:
bash
mysqldump -u [用户名] -p[密码] [数据库名] > [输出文件.sql]
注意 -p 和密码之间无空格。若省略密码,执行后会提示输入。
常用选项说明
-
--databases或-B:导出指定数据库(含建库语句)bashmysqldump -u root -p --databases db1 db2 > backup.sql -
--all-databases或-A:导出所有数据库bashmysqldump -u root -p --all-databases > full_backup.sql -
--tables:导出指定表bashmysqldump -u root -p db1 table1 table2 > tables.sql -
--no-data或-d:仅导出表结构bashmysqldump -u root -p -d db1 > schema_only.sql -
--where:按条件导出数据bashmysqldump -u root -p db1 table1 --where="id>100" > filtered_data.sql
高级功能
增量备份(结合binlog) 先进行全量备份:
bash
mysqldump -u root -p --flush-logs --master-data=2 --all-databases > full_backup.sql
后续通过 mysqlbinlog 工具解析binlog实现增量恢复。
压缩输出 直接导出为压缩文件:
bash
mysqldump -u root -p db1 | gzip > backup.sql.gz
远程备份 从远程服务器导出:
bash
mysqldump -h 192.168.1.100 -u root -p db1 > remote_backup.sql
恢复数据
使用 mysql 客户端导入:
bash
mysql -u root -p db1 < backup.sql
或登录MySQL后执行:
sql
source /path/to/backup.sql;
注意事项
- 确保有足够的磁盘空间存放备份文件
- 大型数据库建议在低峰期操作
- 备份前可使用
--opt参数(默认启用)优化导出效率 - 重要数据应先测试恢复流程