ターミナル内から 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