LinuxでMySQLでディレクトリ内のSQLファイルをバシバシ流すシェルスクリプト

投稿者:isc_blog

2012年一発目の記事ということで・・・まずはご挨拶。
あけましておめでとうございます!
本年もよろしくお願いします。

ということで本題(笑)

LinuxへのWEBアプリのインストールとかで
MySQLへのデータ投入がめんどくさかったので作ってみました。
同一ディレクトリにある「.sql」拡張子のファイルをどんどん流すだけ・・・というシンプルなものです。

こんなの需要があるかわかりませんが社内向けも兼ねて備忘録的に掲載しておきます!

※下記内容を 「test.sh」などの名前で作成します。
[perl]
#!/bin/bash

db_user="hogeuser" #ここを適宜書き換え
db_pass="hogepass" #ここを適宜書き換え

files="*.sql"

for filepath in ${files}

do
#mysqlへのパスはとおっているものとします。
mysql -u ${db_user} -p${db_pass}<${filepath}
echo — ${filepath} Finished.
done
[/perl]

作成したら
起動できるように属性変更します。
[perl]
chmod 755 test.sh
[/perl]

その後、このファイルをSQLファイルがいっぱい入ったディレクトリにコピーし
起動します。

[perl]
./test.sh
[/perl]

実行結果はこんな感じに出ます。
[perl]
[tsato@kingserver sql]$ ./test.sh
— TEST_CREATE.sql Finished.
— TEST_MASTER.sql Finished.
— TEST_DATA_1.sql Finished.
— TEST_DATA_2.sql Finished.
— TEST_DATA_3.sql Finished.
— TEST_DATA_4.sql Finished.
— TEST_DATA_5.sql Finished.
— TEST_DATA_6.sql Finished.
— TEST_DATA_7.sql Finished.


[/perl]

終わったら終わりです。

もっと高機能なスクリプトどこにでもありそうですが・・・・(笑)
一応参考まで。

2012年1月5日