2

いろいろ調べてみましたが、mysqldump にテーブルごとにファイルを作成させる方法が見つかりません。約 100 個のテーブル (および増加中) があり、テーブルごとに新しい mysqldump 行を書き込むことなく、個別のファイルにダンプしたいと考えています。

たとえば、DB のすべてのテーブルを含む my_huge_database_file.sql の代わりに。mytable1.sql、mytable2.sqlなどが欲しい

mysqldump にはこのためのパラメーターがありますか、それともバッチ ファイルで実行できますか? もしそうならどのように。


これはバックアップ用です。

回避策を見つけたのではないかと思います。それは、テーブルの名前をフェッチし、exec() を使用して mysqldump を実行する小さな PHP スクリプトを作成することです。

$result = $dbh->query("SHOW TABLES FROM mydb") ;

while($row = $result->fetch()) {

exec('c:\Xit\xampp\mysql\bin\mysqldump.exe -uroot -ppw mydb > c:\dump\\'.$row[0]) ;
}

私のバッチファイルでは、次のようにします。

php mybackupscript.php
4

2 に答える 2

0

Windows MySQL をインストールしていないため、これをテストすることはできませんが、正しい方向を示しているはずです。

@echo off
mysql -u user -pyourpassword database -e "show tables;" > tables_file
for /f "skip=3 delims=|" %%TABLE in (tables_file) do (mysqldump -u user -pyourpassword database %%TABLE > %%TABLE.sql)
于 2012-11-09T07:25:13.823 に答える