使用 mysqldump 备份 MySQL 数据库是运维和开发中非常常见且有效的方式。它能将数据库导出为 SQL 脚本文件,便于恢复、迁移或归档。以下是常用的备份方法和操作示例。
1. 备份单个数据库
基本语法如下:
mysqldump -u 用户名 -p 数据库名 > 备份文件.sql
例如,备份名为 mydb 的数据库:
mysqldump -u root -p mydb > mydb_backup.sql
执行后会提示输入密码,成功后生成 mydb_backup.sql 文件,包含建表语句和数据。
2. 备份多个数据库
使用 --databases 参数可以同时备份多个数据库:
mysqldump -u root -p --databases db1 db2 > multi_backup.sql
该命令会导出 db1 和 db2 两个数据库的结构与数据。
3. 备份所有数据库
若需备份整个 MySQL 实例中的所有数据库(包括系统库),使用:
mysqldump -u root -p --all-databases > all_databases.sql
适合做全量备份或服务器迁移前的数据导出。
4. 只备份结构或只备份数据
有时只需要结构或数据,可通过参数控制:
只导出结构(无数据):mysqldump -u root -p --no-data mydb > mydb_schema.sql只导出数据(无CREATE语句):
mysqldump -u root -p --no-create-info mydb > mydb_data.sql
5. 添加时间戳命名备份文件
为避免覆盖,建议在文件名中加入日期时间:
mysqldump -u root -p mydb > mydb_$(date +%Y%m%d_%H%M%S).sql
在 Linux 终端中运行,会生成类似 mydb_20250405_103000.sql 的文件。
6. 压缩备份(节省空间)
直接将输出通过管道压缩为 gz 文件:
mysqldump -u root -p mydb | gzip > mydb_backup.sql.gz
恢复时先解压,或配合 gunzip 使用。
7. 恢复数据库
使用 mysql 命令导入备份文件即可恢复:
mysql -u root -p mydb
如果备份的是多个库或 all-databases,则去掉数据库名:
mysql -u root -p
8. 注意事项
确保执行用户有足够权限(如 SELECT, LOCK TABLES 等)。 大数据库备份时建议加 --single-transaction 参数,避免锁表:mysqldump -u root -p --single-transaction mydb > backup.sql定期备份并验证恢复流程是否正常。 基本上就这些常用操作。掌握 mysqldump 能有效保障数据安全。
