
約 100 個の異なるデータベースを含む MySql サーバーで約 20 個のデータベースをエクスポートする必要があります。コンソール コマンドを使用して、データベース名のリストを個別のファイルにエクスポートすることは可能ですか? (もちろん Linux の場合)。
答え1
echo "show databases" | mysql -N | while read db
do
mysqldump ${db} > ${db}.sql
done
grep
不要なデータベースを削除するには、次のように使用できますmysql
。information_schema
答え2
バックアップしたい各データベースの名前を1行ずつ記述したテキストファイルを作成します。
例えば
db1
reports
次に、次のようなスクリプトを使用します
#!/bin/bash
ERRORS=0
while read db
do
echo "Processing $db"
mysqldump -u root -p365576dx "$db" >"$db".sql
EXITSTATUS=$?
if [ "$ERRORS" -eq "0" -a "$EXITSTATUS" -ne "0" ]
then
ERRORS="$EXITSTATUS"
fi
done<dbstodump
if [ "$ERRORS" -ne "0" ]
then
echo "Errors occurred see above for details"
exit 1
fi
答え3
最も簡単な解決策は、コマンド ライン上で単純な for ループを使用することです。私の例では、データベースcars
、animals
、をエクスポートしますcomputers
。
for db in cars animals computers ; do mysqldump -uuser -ppassword "$db" > "$db.sql" ; done