mysqldump 基本语法
备份单个数据库的基本命令格式:
bash
mysqldump -u [username] -p[password] [database_name] > [output_file.sql]
-u指定用户名-p后接密码(无空格),若未直接输入密码,执行后会提示输入[database_name]需替换为目标数据库名> [output_file.sql]将输出重定向到指定SQL文件
常用参数说明
1. 备份结构+数据(默认)
bash
mysqldump -u root -p mydb > backup.sql
2. 仅备份表结构
添加 --no-data 参数:
bash
mysqldump -u root -p --no-data mydb > schema_only.sql
3. 仅备份数据
添加 --no-create-info 参数:
bash
mysqldump -u root -p --no-create-info mydb > data_only.sql
4. 备份多个数据库
使用 --databases 参数:
bash
mysqldump -u root -p --databases db1 db2 > multi_db_backup.sql
5. 备份所有数据库
使用 --all-databases 参数:
bash
mysqldump -u root -p --all-databases > full_backup.sql
高级选项
1. 添加时间戳
在文件名中嵌入日期:
bash
mysqldump -u root -p mydb > mydb_$(date +%Y%m%d).sql
2. 压缩备份文件
通过管道直接压缩:
bash
mysqldump -u root -p mydb | gzip > backup.sql.gz
3. 忽略特定表
使用 --ignore-table 参数:
bash
mysqldump -u root -p mydb --ignore-table=mydb.logs > filtered_backup.sql
恢复数据库
使用 mysql 命令恢复备份:
bash
mysql -u root -p mydb < backup.sql
注意事项
- 密码若包含特殊字符,建议使用
-p后不接密码,通过交互输入 - 确保执行用户有对应数据库的读写权限
- 大型数据库备份可能耗时较长,建议在低峰期操作