データベースに接続してクエリを実行するシェル スクリプト

データベースに接続してクエリを実行するシェル スクリプト
#!bin/bash
Query="update table_name set colume ='i' where column_name is NOT NUll"

mysql -u username -p password mysql  <<EOF
$query;
EOF

上記のスクリプトは動作しません

答え1

MySQL のドキュメントは非常にわかりやすいです:

#!bin/bash
query="update table_name set colume ='i' where column_name is NOT NUll"
mysql -u username -ppassword mysql -e "$query";

-eこのオプションを使用すると、任意のクエリを mysql サーバーに送信できます。

-pとの間にスペースがないことに注意してください。これはCLIpasswordの意図的な構文です。mysql

答え2

Query上記のスクリプトは、シェル構文が大文字と小文字を区別し、変数を定義してからそれを展開するため機能しませんquery

それ以外の場合は、適切な方法については @Kondybas の回答を参照してください。

関連情報