介绍
在 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 为例:
- 连接数据库,右键点击要导出的数据库/表
- 选择 “转储 SQL 文件”
- 根据需求选择:
- 结构和数据(默认)
- 仅结构
- 仅数据
- 选择保存路径,点击确定即可
导入文件
导出文件的使用
导出的 .sql 文件可通过以下命令导入:
mysql -u 用户名 -p 数据库名 < 导出文件名.sql
根据需求选择合适的导出方式,定期备份数据库是良好的开发习惯。