)
文档教程知识库【免费下载链接】til:memo: Today I Learned项目地址https://gitcode.com/gh_mirrors/ti/til点击查看免费下载mysqldump是 MySQL 自带的客户端备份工具其标准用法会输出一段按字母顺序排列的 SQL 语句流完整涵盖指定数据库的表结构与数据。本指南以 mysql/dump-a-database-to-a-file.md 为骨架讲解如何用一行命令把数据库快照重定向到文件、理解输出中禁用约束检查的特殊注释并掌握--databases与--all-databases的多库导出方法。读完你将能独立完成单库、多库乃至全实例的备份并知道如何把备份文件重新灌回 MySQL 完成恢复。mysqldump 是什么一次导出「结构 数据」的完整快照mysqldump客户端是创建数据库备份或快照的便捷工具。它的标准用法会生成一段按字母顺序排列的语句序列这些语句由两部分构成表结构建表语句CREATE TABLE等定义性 SQL表数据INSERT等数据装载语句。命令本身把所有输出都写到标准输出stdout因此你通常需要把它重定向到文件才能得到一个可保存、可迁移的备份产物。在开始 dump 之前建议先用SHOW DATABASES;确认目标数据库名称相关操作可参考 mysql/list-databases-and-tables.md。核心命令重定向输出到文件标准用法如下$ mysqldump my_database my_database_backup.sql这里把mysqldump对my_database的输出整体重定向到my_database_backup.sql文件。由于mysqldump默认使用当前系统用户的身份连接本地 MySQL实际使用时往往需要显式指定连接参数。仓库中其他 TIL 展示了 MySQL 客户端的典型连接参数风格参考 mysql/connect-to-a-database-in-safe-update-mode.md 中的-h、-P、-u、-D用法mysqldump同样支持这些选项$ mysqldump -h 127.0.0.1 -P 3306 -u root -p my_database my_database_backup.sql参数说明参数作用-h/--host指定 MySQL 服务器地址如127.0.0.1-P/--port指定端口默认3306-u/--user连接用户名-p/--password触发密码提示新实例默认用户为root且密码为空详见 mysql/default-username-and-password-for-new-instance.md原理字母排序输出为何不会违反外键约束一个值得留意的细节是mysqldump的输出按字母顺序排列语句。在存在外键依赖的数据库中父表与子表的创建顺序若随意颠倒恢复时会因被引用的表还不存在而失败。它的解法是输出中会包含带有 MySQL 指令的特殊注释这些指令会在导入时临时禁用约束检查例如外键检查类指令。正是这些注释的存在使得备份文件即使按字母顺序组织语句也不会在恢复时触发外键约束错误。也就是说字母排序只是表面的呈现方式特殊注释才是让恢复过程安全、顺序无关的底层保证。这也是「dump 文件应当整体通过mysql客户端导入、而非手动摘取片段执行」的原因只有走标准导入流程这些特殊注释指令才会被正确解析生效。导出多个数据库或全部数据库如果你需要一次导出多个数据库加上--databases标志并跟一个空格分隔的数据库名列表$ mysqldump --databases my_database another_database multi_backup.sql--databases会让输出包含CREATE DATABASE与USE语句因此导入时无需预先建库。如果想把实例上的所有数据库全部导出使用--all-databases$ mysqldump --all-databases full_backup.sql这会涵盖服务器上所有数据库通常也会包含mysql系统库等适合整机迁移或完整备份场景产物文件也会明显更大。常用可选参数按备份需求裁剪man mysqldump中还提供了大量可选参数可用于裁剪备份内容或提升一致性常见的有--single-transaction在 InnoDB 表上开启一个事务来读取一致快照避免备份期间锁表适合在线备份--no-data只导出表结构不导出数据--no-create-info只导出数据不导出建表语句--routines/--triggers额外导出存储过程与触发器--compress客户端与服务端之间压缩传输适合远程 dump。具体行为与默认值以man mysqldump的说明为准执行$ man mysqldump即可查看完整文档。恢复把备份文件重新导入 MySQL备份文件是纯 SQL 文本恢复时反向操作即可用mysql客户端把文件内容重定向喂给服务器让特殊注释里的 MySQL 指令在导入过程中生效。$ mysql -h 127.0.0.1 -P 3306 -u root -p my_database_backup.sql这种「用把.sql文件喂给mysql客户端执行」的输入重定向模式与仓库中 mysql/echo-a-message-from-a-sql-file.md 展示的种子脚本执行方式mysql ... seed_data.sql完全一致。若备份时使用了--databases或--all-databases导入过程会自动完成建库与切换库若备份的是单库且未加--databases则需先确保目标数据库存在再导入。小结与延伸阅读mysqldump是 MySQL 环境中最直接的备份/快照手段默认输出按字母排序的「结构 数据」SQL 语句流配合重定向即可落盘其输出的特殊注释会在导入时禁用约束检查从而保证排序无关的恢复安全--databases与--all-databases则将能力扩展到多库与全实例。更深入的参数细节请查阅man mysqldump。原文档mysql/dump-a-database-to-a-file.md查看可用数据库mysql/list-databases-and-tables.mdMySQL 客户端连接参数mysql/connect-to-a-database-in-safe-update-mode.md从 SQL 文件导入的执行方式mysql/echo-a-message-from-a-sql-file.md新实例默认凭据mysql/default-username-and-password-for-new-instance.md赞分享文档教程知识库【免费下载链接】til:memo: Today I Learned项目地址https://gitcode.com/gh_mirrors/ti/til点击查看免费下载相关推荐MySQL数据库备份实战使用mysqldump导出数据库文件MySQL数据库备份实战使用mysqldump导出数据库文件 什么是mysqldump mysqldump是MySQL官方提供的命令行工具用于逻辑备份MyS文档教程知识库School of SRE 实战MySQL 数据库备份与恢复全指南mysqldump 与 Percona XtraBackupSchool of SRE 实战MySQL 数据库备份与恢复全指南mysqldump 与 Percona XtraBackup 备份是任何数据库体系的基石教程mysqldump 数据库备份工具详解从整库导出到锁表故障排查的 Linux 实战指南mysqldump 数据库备份工具详解从整库导出到锁表故障排查的 Linux 实战指南 mysqldump 是 MySQL 官方自带的逻辑备份工具它能把服务文档教程上一篇React Router 数据路由化重构解读 ADR-0005「Remixing React Router」的架构决策与源码实现下一篇文本绘图革命用代码思维重塑你的图表创作方式创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考