Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2811

記事1)LinuxスクリプトでのMySQLクエリ(スクリプト初めての方も)

$
0
0
初めての記事ですが、LinuxでのスクリプトでMySQLデータベースのレコードの削除やファイル削除などについて共有したいと思います。 ◆まずは、Linuxのコマンドを開きます。 Windowsで利用の方は色んなコマンドツールがあると思いますが、私は下記のツールなどを使っています。  -「Linuxサーバ」PuTTY (https://www.putty.org/)  -「ロカール環境」Git Bash (https://git-scm.com/downloads) ◆下記のコマンドでスクリプトファイルを作成して試してみましょう $vim file_name.sh file_name.sh #!/bin/bash echo hello world 保存して、権限を与える $chmod +x file_name.sh 下記のコマンドで実行してみると hello worldがアウトプットされました。 $./file_name.sh では、さっそくMySQLクエリを実行してみましょう ロカール環境ではMySQLデータベースを接続するためユーザ名やパスワードなどをスクリプトフィアルで直接書いても問題ないですが、LinuxサーバではこのようなWranningが出る場合があります。 mysql: [Warning] Using a password on the command line interface can be insecure. なので、このように設定フィアルを利用した方が安全です。 $vim mysql_access.cnf mysql_access.cnf [client] user=user_name password=password 保存して、権限を与えます。 $chmod 600 mysql_access.cnf そして、スクリプトでMySQLに接続して、データベースのレコードやフィアルなどを削除してみます。リクエストIDの設定や確認メッセージなども含めてやっていきたいと思います。 file_name.sh #!/bin/bash #MySQL接続 db_name="database_name" host_name="host_name" sql_con="mysql --defaults-extra-file=mysql_access.cnf -h $host_name $db_name " sql_exit="exit;" #リクエストID設定 read -p "IDを入力してください: " t_id #確認メッセージ read -p "データを削除してもよろしいですか?(y/N): " yn case "$yn" in [yY]*) #yes/y の場合DBの存在チェックする $var1=$($sql_con -se "SELECT id,name,created_date FROM tbl_name WHERE id=$t_id;") #$var1がNULLかどうかをチェックする「if文には半角スペースは大事です」 if [ -z "$var1" ]; then echo "データが存在しません"; else #SQLクエリのアウトプットを変数に割当します read id name created_date <<< $var1 #データを削除します。 $sql_con -se "DELETE FROM tbl_name WHERE id=$id;" #ファイルを削除する場合 file_path="/path/to/file/file_name.ext" #ファイル存在チェック if [ -e $file_path ]; then sudo rm -f $file_path; else echo "ファイルが見つかりませんでした。"; fi echo "削除しました。"; fi ;; *) echo "中止しました。" ;; esac #引き続き削除したい場合 read -p "引き続き削除しますか?(y/N)" c_del case "$c_del" in [yY]*) ./file_name.sh ; *) echo "終了しました。" ; esac アウトプット $ ./file_name.sh IDを入力してください: 365 データを削除してもよろしいですか? (y/N) : y 削除しました。 引き続き削除しますか?(y/N)y IDを入力してください: 22 データを削除してもよろしいですか? (y/N) : y データが存在しません。 引き続き削除しますか?(y/N)n 終了しました。 もしよかったらぜひ試してみてください。

Viewing all articles
Browse latest Browse all 2811

Trending Articles