将 SQL 表导出为 CSV:SQL Server、MySQL、PostgreSQL 和 Oracle
2026-07-30
2026-07-30
2026-07-30
2026-07-30
mysqldump 是一个命令行工具,可将 MySQL 数据库导出为纯文本的 .sql 文件。这些文件包含 SQL 语句——如 CREATE TABLE 和 INSERT INTO——可在任何兼容的 MySQL 服务器上重建您的数据库结构和数据。
为什么使用 mysqldump
.sql 输出为纯文本,因此可以轻松地在不同操作系统和服务器环境之间迁移。在深入了解更高级的选项之前,先理解核心语法会有所帮助。该命令遵循一个简单的结构:您指定 MySQL 用户,命名要转储的数据库,并告诉终端将输出文件保存到哪里。
基本命令如下所示:
mysqldump -u root -p mydb > backup.sql
各组成部分详解:
root 替换为您的实际用户名。按照以下步骤从命令行导出 MySQL 数据库。此过程适用于 Windows、macOS 和 Linux,但打开终端的方式因系统而异。

如果 mysqldump 未被识别为命令,您的系统可能未将 MySQL 添加到 PATH 中。在这种情况下,请先导航到 MySQL 安装文件夹。
在 Windows 上,默认路径通常为:
cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"

mysqldump --version。如果返回版本号,则 MySQL 已在 PATH 中,您可以跳过此步骤。运行以下命令,将 root 和 my_database 替换为您的实际用户名和数据库名称:
mysqldump -u root -p my_database > backup.sql

您还可以根据需要导出内容修改命令:
| 目标 | 命令 |
|---|---|
| 仅导出结构 | mysqldump -u root -p my_database --no-data > backup.sql |
| 仅导出数据 | mysqldump -u root -p my_database --no-create-info > backup.sql |
| 导出多个数据库 | mysqldump -u root -p --databases db1 db2 > backup.sql |
| 导出所有数据库 | mysqldump -u root -p --all-databases > full_backup.sql |
| 导出特定表 | mysqldump -u root -p my_database table1 table2 > backup.sql |
终端将提示您输入 MySQL 密码。输入密码并按 Enter。
当光标返回空白行时,导出即完成。要确认文件已成功创建:
.sql 文件。一旦您使用 mysqldump 导出了数据库,您最终将需要恢复它。请注意,虽然 mysqldump 创建导出文件,但您使用 mysql 客户端——而不是 mysqldump——来导入它。
要将 .sql 文件导入数据库,请运行:
mysql -u root -p my_database < backup.sql
将 root、my_database 和 backup.sql 替换为您的实际用户名、目标数据库名称和文件路径。
与导出命令的关键区别在于操作符的方向。< 符号将 .sql 文件的内容馈送到 mysql 客户端,而 > 将输出写入文件。
除非您使用 --all-databases 导出,否则 .sql 文件通常不包含 CREATE DATABASE 语句。您需要在导入前手动创建数据库:
CREATE DATABASE my_new_database;
如果您的导出使用了特定字符集(如 UTF-8),请确保目标数据库配置为匹配。不匹配可能导致文字乱码或不可读。
常见原因包括用户权限不足(Access Denied)或文件大小超过服务器的 max_allowed_packet 限制。如有需要,在 MySQL 配置文件中增加此值。
mysqldump 是单次导出和手动备份的可靠工具。但对于需要计划性、自动化和集中管理的数据库保护的团队,手动运行命令无法扩展。这就是像 i2Backup 这样的专用备份解决方案发挥作用的地方。
无论您是保护单个 MySQL 实例还是管理跨多个服务器的备份,i2Backup 都能为您的团队提供一致的、自动化的覆盖,而无需运行 mysqldump 导出的人工开销。
问 1:如何导出整个 MySQL 数据库?
运行以下命令,将 root 和 my_database 替换为您的实际用户名和数据库名称:
mysqldump -u root -p my_database > backup.sql
要一次性导出服务器上的所有数据库,请改用 --all-databases 标志:
mysqldump -u root -p --all-databases > full_backup.sql
问 2:如何使用 mysqldump 备份数据库?
打开终端,如有需要导航到 MySQL bin 目录,然后使用您的用户名、数据库名称和指向输出文件的 > 操作符运行 mysqldump 命令。确保您的 MySQL 用户对目标数据库具有必要的 SELECT 和 LOCK TABLES 权限。
问 3:如何从 MySQL 数据库导出特定表?
在命令中,在数据库名称后添加表名:
mysqldump -u root -p my_database my_table > table_backup.sql
要导出多个表,请用空格分隔依次列出。
问 4:如何仅导出数据库结构而不含数据?
使用 --no-data 标志导出表定义而不含任何行:
mysqldump -u root -p my_database --no-data > structure_only.sql
这在设置需要相同模式但不需要现有数据的新环境时非常有用。
问 5:我可以在 Windows 上使用 mysqldump 吗?
可以。打开命令提示符,运行与 Linux 或 macOS 相同的 mysqldump 命令。如果命令未被识别,请先导航到 MySQL bin 目录(例如 cd "C:\Program Files\MySQL\MySQL Server 8.0\bin")或将 MySQL 添加到系统 PATH 中。
mysqldump 是一个从命令行导出 MySQL 数据库的直接且灵活的工具。无论您是备份单个表、迁移整个服务器,还是仅导出模式,本指南中涵盖的命令和选项应能处理大多数常见场景。
也就是说,备份只有在能成功恢复时才有用。导出后始终验证您的 .sql 文件。对于需要一致性和自动化的生产环境,将 mysqldump 与像 i2Backup 这样的专用解决方案结合使用有助于减少人工开销和人为错误的风险。
公告
邮件
销售