首页 >数据库 >mysql教程 >如何自动将 MySQL 表转储到单独的文件中?

如何自动将 MySQL 表转储到单独的文件中?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-27 04:46:02738浏览

How Can I Automate Dumping MySQL Tables into Separate Files?

自动将 MySQL 表转储到单独的文件

内置 mysqldump 实用程序允许选择性表转储,但需要预先指定表名称。对于处理新表添加的动态方法,自动化解决方案是必要的。

其中一个解决方案是 shell 脚本,它动态查询数据库中的所有表名称并将每个表转储到单独的压缩文件中。这样就无需在转储脚本中手动维护表名。

这是实现此功能的示例脚本:

<code class="bash">#!/bin/bash

# Descr: Dump MySQL table data into separate SQL files for a specified database.
# Usage: Run without args for usage info.
# Author: @Trutane

[ $# -lt 3 ] && echo "Usage: $(basename ) <DB_HOST> <DB_USER> <DB_NAME> [<DIR>]" && exit 1

DB_host=
DB_user=
DB=
DIR=${4:-.}

[ -d $DIR ] || mkdir -p $DIR

echo -n "DB password: "
read -s DB_pass

tbl_count=0

for t in $(mysql -NBA -h $DB_host -u $DB_user -p$DB_pass -D $DB -e 'show tables') 
do 
    echo "DUMPING TABLE: $DB.$t"
    mysqldump -h $DB_host -u $DB_user -p$DB_pass $DB $t | gzip > "$DIR/$DB.$t.sql.gz"
    tbl_count=$(( tbl_count + 1 ))
done

echo "$tbl_count tables dumped from database '$DB' into dir=$DIR"</code>

此脚本提示输入数据库密码,查询指定数据库表名,并将每个表的数据作为 SQL 命令转储到指定目录(默认为当前工作目录)内的单独压缩文件中。

以上是如何自动将 MySQL 表转储到单独的文件中?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn