mysqldump 可以将 MySQL 数据和表结构导出为 SQL 文件。下面使用占位名称,执行时替换 database_name、table_name 和账号。
导出完整数据库
mysqldump -h localhost -u backup_user -p --result-file=database.sql database_name
-p 后不填写密码,由命令行交互提示输入,避免将密码直接写入命令历史。--result-file 让工具直接写文件,减少不同终端重定向编码行为的影响。
导出单张表
mysqldump -h localhost -u backup_user -p --result-file=table.sql database_name table_name
只导出表结构
整个数据库:
mysqldump -h localhost -u backup_user -p --no-data --result-file=schema.sql database_name
单张表:
mysqldump -h localhost -u backup_user -p --no-data --result-file=table-schema.sql database_name table_name
验证导出结果
- 检查命令退出状态,而不是只看输出文件是否存在。
- 确认备份账号拥有所需权限,目标目录可写。
- 在单独的测试数据库中恢复,核对表结构和记录数量。
- 对正在写入的数据库,需要结合存储引擎考虑一致性;InnoDB 可评估
--single-transaction,期间应避免更改表结构。
这些基础命令不替代完整备份策略。例行备份还需明确存储过程、事件、触发器、权限与恢复目标。
参考
本文根据原有 MySQL 导出命令笔记整理,删除了外链截图和明文示例密码。