mysqldump 备份恢复
时间: 2025-03-22 14:10:02 浏览: 33
### 使用 `mysqldump` 进行备份与恢复
#### 一、备份操作
`mysqldump` 是一种用于逻辑备份的工具,可以用来导出整个数据库或单个表的数据和结构。以下是几种常见的备份方式:
1. **备份单个数据库**
要备份某个特定的数据库,可以使用如下命令:
```bash
mysqldump -u用户名 -p密码 数据库名 > 文件路径/备份文件名.sql
```
示例:
```bash
mysqldump -uroot -prootpassword mydatabase > /backup/mydatabase_backup.sql
```
2. **备份单张表**
如果只需要备份某一张表,则可以在命令中指定表名:
```bash
mysqldump -u用户名 -p密码 数据库名 表名 > 文件路径/备份文件名.sql
```
示例:
```bash
mysqldump -uroot -prootpassword mydatabase users_table > /backup/users_table_backup.sql
```
3. **全库备份**
不指定具体表的情况下,默认会备份整个数据库中的所有数据和结构[^2]:
```bash
mysqldump -u用户名 -p密码 --all-databases > 文件路径/全部数据库备份.sql
```
示例:
```bash
mysqldump -uroot -prootpassword --all-databases > /backup/all_databases_backup.sql
```
4. **带存储过程和函数的备份**
若要包含存储过程和函数,需加上 `-R` 参数:
```bash
mysqldump -u用户名 -p密码 数据库名 -R > 文件路径/备份文件名.sql
```
示例:
```bash
mysqldump -uroot -prootpassword mydatabase -R > /backup/mydatabase_with_routines.sql
```
---
#### 二、恢复操作
通过 `mysql` 命令可以直接将 `.sql` 文件导入到目标数据库。
1. **恢复单个数据库**
将备份文件重新加载回数据库:
```bash
mysql -u用户名 -p密码 数据库名 < 文件路径/备份文件名.sql
```
示例:
```bash
mysql -uroot -prootpassword mydatabase < /backup/mydatabase_backup.sql
```
2. **创建新数据库并恢复**
若目标数据库不存在,需要先手动创建再执行恢复命令:
```bash
mysql -u用户名 -p密码 -e "CREATE DATABASE 新数据库名;"
mysql -u用户名 -p密码 新数据库名 < 文件路径/备份文件名.sql
```
示例:
```bash
mysql -uroot -prootpassword -e "CREATE DATABASE new_mydatabase;"
mysql -uroot -prootpassword new_mydatabase < /backup/mydatabase_backup.sql
```
3. **恢复全量备份**
对于完整的多数据库备份文件,可直接运行以下命令:
```bash
mysql -u用户名 -p密码 < 文件路径/全部数据库备份.sql
```
示例:
```bash
mysql -uroot -prootpassword < /backup/all_databases_backup.sql
```
---
### 注意事项
- 在实际生产环境中,建议定期测试备份文件的有效性,确保能够正常恢复。
- 需要特别注意的是,在大容量数据库场景下,`mysqldump` 的性能可能不如物理备份方案(如 XtraBackup)。因此应根据实际情况选择合适的备份策略[^4]。
阅读全文
相关推荐

















