MySQL导出数据(数据备份) 作者:马育民 • 2025-10-03 22:54 • 阅读:10008 # 介绍 在 MySQL 中,导出数据和结构通常使用 `mysqldump` 命令行工具,也可以通过图形化工具(如 Navicat、MySQL Workbench)操作。 ### 应用场景 - 备份 - 数据迁移 # 使用 `mysqldump` 命令(推荐) `mysqldump` 是 MySQL 自带的备份工具,支持导出数据库结构、数据或两者皆有。 #### 1. 导出整个数据库(结构+数据) ```bash mysqldump -u 用户名 -p 数据库名 > 导出文件名.sql ``` 示例: ```bash mysqldump -u root -p mydatabase > mydatabase_backup.sql ``` 执行后会提示输入密码,输入正确后开始导出。 ### 只导出数据库结构(不含数据) 添加 `--no-data` 参数: ```bash mysqldump -u 用户名 -p --no-data 数据库名 > 结构导出.sql ``` 示例: ```bash mysqldump -u root -p --no-data mydatabase > mydatabase_structure.sql ``` ### 只导出数据(不含结构) 添加 `--no-create-info` 参数: ```bash mysqldump -u 用户名 -p --no-create-info 数据库名 > 数据导出.sql ``` ### 导出指定表 ```bash mysqldump -u 用户名 -p 数据库名 表1 表2 > 导出文件名.sql ``` 示例(导出 `users` 和 `orders` 表): ```bash mysqldump -u root -p mydatabase users orders > user_orders_backup.sql ``` ### 导出多个数据库 使用 `--databases` 参数: ```bash mysqldump -u 用户名 -p --databases 数据库1 数据库2 > 多库导出.sql ``` ### 导出所有数据库 ``` mysqldump -u 用户名 -p --all-databases > all_databases.sql ``` # 导出为 CSV 格式 适合数据迁移到Excel等工具 `SELECT INTO OUTFILE` 实现导出表数据为 CSV: ```sql -- 登录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` 文件可通过以下命令导入: ```bash mysql -u 用户名 -p 数据库名 < 导出文件名.sql ``` 根据需求选择合适的导出方式,定期备份数据库是良好的开发习惯。 原文出处:http://malaoshi.top/show_1GW1yZ4iaXqh.html