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

      2016/04/09

この記事の所要時間: 154

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]

終わったら終わりです。

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

 - テスト, 雑記 , , , ,

  • B!
  • B!