ターミナル内からmysqlを使用して警告メッセージを抑制しますが、パスワードはbashスクリプトに記述されています 質問する

ターミナル内からmysqlを使用して警告メッセージを抑制しますが、パスワードはbashスクリプトに記述されています 質問する

ターミナル内から MySQL で次のコマンドを実行しようとしました:

mysql -u $user -p$password -e "statement"

実行は期待どおりに機能しますが、常に警告が発行されます。

警告: コマンド ライン インターフェイスでパスワードを使用すると安全でない可能性があります。

ただし、ターミナル内から bash スクリプトでコマンドを繰り返し実行したいので、パスワードを保存する環境変数 ( $password) を使用して上記のステートメントを実行する必要があります。プロンプトが表示されるのを待って、1 つのスクリプトでパスワードを 50 回または 100 回入力させるのは絶対に嫌です。そこで、私の質問は次のとおりです。

  • 警告を抑制することは可能ですか? コマンドは私が述べたとおりに正常に動作しますが、ループしてコマンドを 50 回または 100 回実行すると、ウィンドウがかなり乱雑になります。

  • 警告メッセージに従って、スクリプトにパスワードを書き込まないようにする必要がありますか? その場合、プロンプトが強制するたびにパスワードを入力しなければならないのでしょうか?

走ってもman mysql意味がない、ただ言うだけ

--show-warnings
各ステートメントの後に警告がある場合はそれを表示します。このオプションは、対話型モードとバッチ モードに適用されます。

何か見落としていない限り、機能をオフにする方法については何も言及されていません。

私は OS X 10.9.1 Mavericks を使用しており、homebrew から MySQL 5.6 を使用しています。

ベストアンサー1

私は次のようなものを使います:

mysql --defaults-extra-file=/path/to/config.cnf

または

mysqldump --defaults-extra-file=/path/to/config.cnf 

config.cnf には次の内容が含まれます:

[client]
user = "whatever"
password = "whatever"
host = "whatever"

これにより、異なるサーバー/ロール/データベース用に複数の設定ファイルを持つことができます。~/.my.cnf を使用すると、設定のセットを 1 つだけ持つことができます (ただし、デフォルトの便利なセットになる場合があります)。

Debian ベースのディストリビューションを使用していて、root として実行している場合は、上記をスキップして、/etc/mysql/debian.cnf を使用するだけで済みます... :

mysql --defaults-extra-file=/etc/mysql/debian.cnf

おすすめ記事