自动将 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中文网其他相关文章!