■ 仕様概要
以下のようなルールで実装してみる
* 同一階層に置かれたダンプファイル(拡張子「*.sql」)を実行する
* ダンプファイル名は、データベース名として使用する
手順概要
[1] DB作成
[2] 権限の追加
[3] ダンプファイルをインポートする
■ サンプル
#!/bin/sh
echo "Let's get it started";
# Setting Values
dbUserId=admin;
dbUserPassword=Admin1@Tokyo;
dbRootId=root;
dbRootPassword=Root2@Osaka;
# ディレクトリ内の拡張子「*.sql」を繰り返して処理する
for sqlDumpFileName in *.sql; {
# ファイル名をデータベース名として使用する
dbName=`basename "@sqlDumpFileName" .sql`;
echo "=======================================";
# Step1: DB作成
echo "Step1: To create DB ${dbName}.";
sqlToCreateDb="CREATE DATABASE \`${dbName}\`";
mysql -u${dbRootId} -p${dbRootPassword} -e "${sqlToCreateDb}";
# Step2: 権限の追加
echo "Step2: To add Authority.";
sqlToExecteGrantForLocal="GRANT ALL PRIVILEGES ON \`${dbName}\`.* TO \`${dbUserId}\`@\`local\` IDENTIFIED BY '${dbUserPassword}' WITH GRANT OPTION;";
mysql -u${dbRootId} -p${dbRootPassword} -e "${sqlToExecteGrantForLocal}";
sqlToExecteGrantForAll="GRANT ALL PRIVILEGES ON \`${dbName}\`.* TO \`${dbUserId}\`@\`*\` IDENTIFIED BY '${dbUserPassword}' WITH GRANT OPTION;";
mysql -u${dbRootId} -p${dbRootPassword} -e "${sqlToExecteGrantForAll}";
mysql -u${dbRootId} -p${dbRootPassword} -e "FLUSH PRIVILEGES;";
# Step3: ダンプファイルをインポートする
echo "Step3: To import the dump file ${sqlDumpFileName}.";
mysql -u${dbRootId} -p${dbRootPassword} ${dbName} < ${sqlDumpFileName};
}
echo "DONE !!!!!!!!!!!!!";