基本命令格式:
mysqldump -u [用户名] -p[密码] [数据库名] > [备份文件路径]
参数解释:
-u:指定连接数据库的用户名(如 root)。
-p:接下来输入密码。注意:-p和密码之间不能有空格(虽然出于安全考虑,更推荐不直接在命令中写密码)。
[数据库名]:你要备份的数据库的名称,例如 my_app_db。
:输出重定向符,将 mysqldump 输出的 SQL 数据导回到指定的文件。
[备份文件路径]:生成的备份文件存放的路径,通常以 .sql 结尾。
示例1:备份名为 myblog 的数据库到当前目录下的 myblog_backup.sql 文件
mysqldump -u root -pYourPassword myblog > ./myblog_backup.sql
执行命令后,会提示你输入密码,这样密码不会留在历史记录中
mysqldump -u root -p myblog > ./myblog_backup.sql
在 Linux/macOS 下,可以使用 date 命令动态生成文件名:
mysqldump -u root -p myblog > /home/backups/myblog_$(date +%Y%m%d_%H%M%S).sql
这个命令会生成一个类似 myblog_20231025_143022.sql 的文件。
常用增强选项:
为了让备份更加实用和可靠,通常会增加一些选项:
mysqldump -u root -p --single-transaction --routines --triggers --events myblog > myblog_backup.sql
--single-transaction:在备份开始前,启动一个事务来确保数据的一致性。对于使用 InnoDB 存储引擎的表,这是首选的备份方式,它不会锁表。
--routines:同时备份存储过程和函数。
--triggers:同时备份触发器。
--events:同时备份事件调度器。
--add-drop-database:在 CREATE DATABASE 语句前加上 DROP DATABASE 语句。在还原时,如果库已存在,会先删除再创建。(在全库备份时更常用)
当你需要迁移服务器或进行完整的灾难恢复时,需要备份所有数据库。
基本命令格式:
mysqldump -u [用户名] -p[密码] --all-databases > [备份文件路径]
关键选项:
--all-databases:这个选项告诉 mysqldump 备份实例中的所有数据库,包括系统数据库(如 mysql, sys, information_schema 等,information_schema 是例外,它是一系列视图)。
示例与实践: 示例:备份整个MySQL实例
mysqldump -u root -p --all-databases > ./full_mysql_backup.sql
完整的推荐命令:
对于生产环境的全量备份,建议使用如下命令:
mysqldump -u root -p --all-databases --single-transaction --routines --triggers --events --add-drop-database > /home/backups/full_backup_$(date +%Y%m%d).sql
--add-drop-database:在这里非常重要,它确保了还原时每个数据库都能被干净地重建。
特性 备份单个库 备份整个实例 命令核心 mysqldump -u user -p database_name mysqldump -u user -p --all-databases 用途 备份、迁移或还原单个应用数据库 完整的服务器迁移、灾难恢复 包含内容 指定库的表结构、数据、存储过程、触发器等 所有数据库、用户、权限(在 mysql 库中)等 还原注意 需要先创建或选择目标数据库 会还原整个实例状态,包括用户和权限
知道如何备份,也必须知道如何还原。
还原单个数据库:
首先,确保目标数据库存在。如果不存在,需要先创建:
CREATE DATABASE myblog_restore;
然后使用 mysql 客户端进行还原:
mysql -u root -p myblog_restore < ./myblog_backup.sql
还原整个实例:
mysql -u root -p < ./full_mysql_backup.sql
这个操作会覆盖当前实例中的所有数据,请务必谨慎操作,并确保在测试环境验证。
安全建议
保护备份文件:备份文件包含了所有数据的明文信息,务必妥善保管,设置严格的访问权限。
避免密码在命令行中:在自动化脚本中如果必须使用密码,请使用配置文件(如 ~/.my.cnf)或环境变量,并确保相关文件权限为 600。
定期测试还原:备份的有效性只有通过成功的还原才能验证,请定期在测试环境进行还原演练。
本文作者:小白
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!