常用的MySQL备份/还原 的方法
内容提要
该文章介绍了使用mysqldump命令备份MySQL数据库的方法,包括备份单个数据库、多个数据库、所有数据库、特定表和多个表。还介绍了备份命令的参数和压缩备份的方法。此外,还介绍了仅备份数据库结构、恢复数据备份的方法,以及使用mysql命令执行恢复命令的两种方式。最后,提供了一个自动备份脚本的示例。
延伸解读
备份参数 -B 的实际影响
文章指出,使用 -B 参数备份时,导出的 SQL 文件会自带 create database 和 use 语句,恢复时无需手动建库和指定目标库。反之,若未加 -B,则需先创建数据库并在恢复命令中指定库名。因此,在编写备份脚本时,建议统一加上 -B 参数,可简化恢复流程,减少操作失误。
压缩备份与直接恢复技巧
对于数据量较大的场景,文章推荐通过管道将 mysqldump 输出传给 gzip 进行压缩,生成 .sql.gz 文件。恢复时,可先解压再导入,也可直接用 gzip 解压并通过管道传给 mysql 命令,实现从压缩文件直接恢复。这能节省磁盘空间,并简化远程备份的传输。
部分数据备份与快速回滚方法
文章介绍了一种备份表中部分数据的思路:先用 create table ... like 复制表结构,再将满足条件的数据插入新表,随后可清理原表数据。需要恢复时,从备份表导回数据并删除临时表。这种方法适合快速备份和恢复关键业务数据,但操作前需确保条件准确,避免误删。
自动备份脚本的关键点
文章提供了一个自动备份脚本示例,使用 mysqldump 备份所有数据库并压缩,保留最近 7 天备份,通过 find 命令删除过期文件,并借助 crontab 定时执行。部署时需注意脚本中的备份路径、数据库连接信息以及权限设置,确保备份任务能稳定运行。
Q&A
如何使用mysqldump备份单个数据库?
使用命令:mysqldump -h主机名 -P端口 -u用户名 -p'密码' --database 数据库名 > 文件名.sql。
如何备份多个数据库?
使用命令:mysqldump -h主机名 -P端口 -u用户名 -p'密码' --database 数据库名1 数据库名2 > 文件名.sql。
如何备份所有数据库?
使用命令:mysqldump -h主机名 -P端口 -u用户名 -p'密码' --all-databases > 文件名.sql。
如何进行MySQL数据库的压缩备份?
使用命令:mysqldump -h主机名 -P端口 -u用户名 -p'密码' --database 数据库名 | gzip > 文件名.sql.gz。
如何仅备份数据库结构而不包含数据?
使用命令:mysqldump -h主机名 -P端口 -u用户名 -p'密码' --no-data 数据库名 > 文件名.sql。
如何恢复MySQL数据库的备份?
使用命令:mysql -h主机名 -P端口 -u用户名 -p'密码' 数据库名 < 文件名.sql。