MySQL导出数据(数据备份)

介绍

在 MySQL 中,导出数据和结构通常使用 mysqldump 命令行工具,也可以通过图形化工具(如 Navicat、MySQL Workbench)操作。

应用场景

  • 备份
  • 数据迁移

使用 mysqldump 命令(推荐)

mysqldump 是 MySQL 自带的备份工具,支持导出数据库结构、数据或两者皆有。

1. 导出整个数据库(结构+数据)

mysqldump -u 用户名 -p 数据库名 > 导出文件名.sql

示例:

mysqldump -u root -p mydatabase > mydatabase_backup.sql

执行后会提示输入密码,输入正确后开始导出。

只导出数据库结构(不含数据)

添加 --no-data 参数:

mysqldump -u 用户名 -p --no-data 数据库名 > 结构导出.sql

示例:

mysqldump -u root -p --no-data mydatabase > mydatabase_structure.sql

只导出数据(不含结构)

添加 --no-create-info 参数:

mysqldump -u 用户名 -p --no-create-info 数据库名 > 数据导出.sql

导出指定表

mysqldump -u 用户名 -p 数据库名 表1 表2 > 导出文件名.sql

示例(导出 users 和 orders 表):

mysqldump -u root -p mydatabase users orders > user_orders_backup.sql

导出多个数据库

使用 --databases 参数:

mysqldump -u 用户名 -p --databases 数据库1 数据库2 > 多库导出.sql

导出所有数据库

mysqldump -u 用户名 -p --all-databases > all_databases.sql

导出为 CSV 格式

适合数据迁移到Excel等工具

SELECT INTO OUTFILE 实现导出表数据为 CSV:

-- 登录MySQL后执行
SELECT * FROM 表名 INTO OUTFILE '/tmp/导出文件.csv'
FIELDS TERMINATED BY ','  -- 字段分隔符
OPTIONALLY ENCLOSED BY '"' -- 字段包裹符
LINES TERMINATED BY '\n';  -- 行分隔符

注意:需要有服务器文件写入权限,且路径需是MySQL服务器可访问的路径。

通过图形化工具导出

以 Navicat 为例:

  1. 连接数据库,右键点击要导出的数据库/表
  2. 选择 “转储 SQL 文件”
  3. 根据需求选择:
    • 结构和数据(默认)
    • 仅结构
    • 仅数据
  4. 选择保存路径,点击确定即可

导入文件

导出文件的使用

导出的 .sql 文件可通过以下命令导入:

mysql -u 用户名 -p 数据库名 < 导出文件名.sql

根据需求选择合适的导出方式,定期备份数据库是良好的开发习惯。


原文出处:/show_1GW1yZ4iaXqh.html