WEBサイト制作に関するTips

Linux » テーブル毎にmysqldumpを発行するシェルスクリプト

#!/bin/sh
WORK_DIR="/*output_directory_path*/"
PWFILE="/*password_file_path*/"

TABLES=()
TABLES=(${TABLES[@]} "*table_a*")
TABLES=(${TABLES[@]} "*table_b*")

for (( I = 0; I < ${#TABLES[@]}; ++I ))
do
DUMP_SQL="$WORK_DIR/${TABLES[$I]}.sql"
mysqldump --defaults-extra-file=$PWFILE -u*account* *db_name* --tables ${TABLES[$I]} > $DUMP_SQL
perl -pi -e 's/\),\(/\),\n\(/g' $DUMP_SQL
done


【概要】
*output_directory_path*
→ダンプファイル出力先ディレクトリ

*password_file_path*
→MySQL5.6からはコマンドライン上でパスワードを入力するとWarningエラーが出るので
パスワードの内容を設定した以下の2行を記述したファイルをオプションで読み込ませる

[mysqldump]
password=*your_password*

*table_xxx*
→ここにダンプしたいテーブル名を記述し、出力したい分だけ列挙する

perl -pi -e 's/\),\(/\),\n\(/g' $DUMP_SQL
→INSERT文の各レコードの区切りに改行を挿入してエディタで開きやすく&扱いやすく置換

2014-08-08 10:50:40