事前にテーブル名を知らなくても、MySQL テーブルを別のファイルに自動的にダンプするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-10-30 15:19:03
オリジナル
187 人が閲覧しました

How can I automatically dump MySQL tables into separate files without knowing table names beforehand?

MySQL テーブルの個別ファイルへのダンプの自動化

Mysqldump は、MySQL テーブルを個別のファイルにダンプする便利な方法を提供します。ただし、テーブル名を事前に知っておくことには制限があります。これに対処するために、各テーブルを自動的にダンプする別のアプローチがあります。

スクリプトベースのアプローチ:

script-fu を利用することで、データベースにクエリを実行して取得できます。すべてのテーブル名を入力し、ダンプを実行するスクリプトを作成します。 MySQL データベースにアクセスできるスクリプト言語をいくつか示します。

  • mysql-connector または sqlalchemy を使用した Python
  • PDO または mysqli を使用した PHP
  • mysql2 を使用した Ruby
  • JDBC または JPA を使用した Java

自己完結型 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!