自动将 MySQL 表转储到单独的文件
Mysqldump 提供了一种将 MySQL 表转储到单独文件的便捷方法。然而,事先知道表名是一个限制。为了解决这个问题,有其他方法可以自动转储每个表。
基于脚本的方法:
通过利用 script-fu,您可以查询数据库以检索所有表名并创建一个执行转储的脚本。以下是一些能够访问 MySQL 数据库的脚本语言:
自包含的 Bash 脚本:
提供的 Bash 脚本进一步简化了流程,无需额外的脚本知识:
<code class="bash">#!/bin/bash # dump-tables-mysql.sh [ $# -lt 3 ] && echo "Usage: <DB_HOST> <DB_USER> <DB_NAME> [<DIR>]" && exit 1 DB_host= DB_user= DB= DIR= [ -n "$DIR" ] || DIR=. test -d $DIR || mkdir -p $DIR read -sp "DB password: " DB_pass echo echo "Dumping tables into separate SQL command files for database '$DB' into dir=$DIR" 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中文网其他相关文章!