You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Bash脚本从MySQL数据库导出单个表?

如何通过Bash脚本从MySQL数据库导出单个表?

嗨,我来帮你搞定这个问题!你之前用的mysql -u username -p database_name > file.sql是导出整个数据库的方式,要单独导出某一张表的话,咱们得用MySQL官方的备份工具mysqldump,它专门用来做数据导出,比直接用mysql命令更靠谱。

基础单表导出命令

最直接的写法就是在数据库名后面加上你要导出的表名:

mysqldump -u username -p database_name table_name > table_dump.sql

执行这条命令后,终端会提示你输入MySQL密码,输入完成后,指定表的结构和所有数据就会被导出到table_dump.sql文件里啦。

几个实用的进阶技巧

  • 避免手动输密码(注意安全):如果是在自己的私人环境里用,不想每次输密码,可以把密码直接写在命令里,但要注意-p和密码之间不能有空格:
mysqldump -u username -p'your_password' database_name table_name > table_dump.sql

⚠️ 提醒:不要在公共服务器或者多人共享的环境里这么做,密码会暴露在命令历史里!

  • 只导出表结构:如果只需要表的创建语句,不需要数据,加上--no-data参数:
mysqldump -u username -p database_name table_name --no-data > table_schema.sql
  • 只导出数据:反过来,如果只需要表中的数据,不需要结构,就加--no-create-info参数:
mysqldump -u username -p database_name table_name --no-create-info > table_data.sql

写成Bash脚本的示例

如果需要经常导出,把命令写成脚本会更方便,比如创建一个dump_single_table.sh文件,内容如下:

#!/bin/bash

# 配置你的数据库参数
DB_USER="your_username"
DB_NAME="your_database"
TABLE_NAME="your_target_table"
# 建议不要硬编码密码,执行脚本时会自动提示输入
# DB_PASS="your_password"

# 生成带时间戳的备份文件名,防止覆盖旧文件
OUTPUT_FILE="${TABLE_NAME}_backup_$(date +%Y%m%d_%H%M%S).sql"

# 执行导出命令
mysqldump -u ${DB_USER} -p ${DB_NAME} ${TABLE_NAME} > ${OUTPUT_FILE}

# 检查导出是否成功
if [ $? -eq 0 ]; then
    echo "✅ 表 ${TABLE_NAME} 已成功导出到文件:${OUTPUT_FILE}"
else
    echo "❌ 导出失败,请检查用户名、数据库名或表名是否正确"
fi

写完脚本后,记得给它加执行权限:

chmod +x dump_single_table.sh

之后直接运行./dump_single_table.sh就可以啦,脚本会提示你输入密码,导出成功还会给你反馈。

备注:内容来源于stack exchange,提问作者ph3ro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 08:32:32