答案:mysqldump是MySQL数据库备份的常用工具,支持单库、多库及全库导出,可选结构或数据备份,结合参数如--single-transaction减少锁表影响,支持压缩与时间戳命名,便于恢复和迁移,需确保权限充足并定期验证备份有效性。
使用 mysqldump 备份 MySQL 数据库是运维和开发中非常常见且有效的方式。它能将数据库导出为 SQL 脚本文件,便于恢复、迁移或归档。以下是常用的备份方法和操作示例。
基本语法如下:
mysqldump -u 用户名 -p 数据库名 > 备份文件.sql
例如,备份名为 mydb 的数据库:
mysqldump -u root -p mydb > mydb_backup.sql执行后会提示输入密码,成功后生成 mydb_backup.sql 文件,包含建表语句和数据。
使用 --databases 参数可以同时备份多个数据库:
mysqldump -u root -p --databases db1 db2 > multi_backup.sql该命令会导出 db1 和 db2 两个数据库的结构与数据。
若需备份整个 MySQL 实例中的所有数据库(包括系统库),使用:
mysqldump -u root -p --all-databases > all_databases.sql适合做全量备份或服务器迁移前的数据导出。
有时只需要结构或数据,可通过参数控制:
mysqldump -u root -p --no-data mydb > mydb_schema.sql
mysqldump -u root -p --no-create-info mydb > mydb_data.sql
为避免覆盖,建议在文件名中加入日期时间:
mysqldump -u root -p mydb > mydb_$(date +%Y%m%d_%H%M%S).sql在 Linux 终端中运行,会生成类似 mydb_20250405_103000.sql 的文件。
直接将输出通过管道压缩为 gz 文件:
mysqldump -u root -p mydb | gzip > mydb_backup.sql.gz恢复时先解压,或配合 gunzip 使用。
使用 mysql 命令导入备份文件即可恢复:
mysql -u root -p
mydb 如果备份的是多个库或 all-databases,则去掉数据库名:
mysql -u root -p mysqldump -u root -p --single-transaction mydb > backup.sql