これらのオプションを記述する別の方法。
あなたは書ける
mysql -u "$MYSQL_ROOT" -p"$MYSQL_PASS" -e "SHOW DATABASES"
--password=
[password is] を指定する場合、または-p
とそれに続くパスワードの間にスペースを入れてはなりません。パスワード オプションが指定されていない場合、デフォルトではパスワードは送信されません。
空の文字列を個別の引数として渡します。ただし、以下のコメントは、クライアントが引き続きパスワードを要求することを示しています。おそらく、空の引数をパスワードではなくデータベース名として解釈します。したがって、代わりに次のことを試すことができます。
mysql --user="$MYSQL_ROOT" --password="$MYSQL_PASS" -e "SHOW DATABASES"
.my.cnf ファイル
~/.my.cnf
ただし、方法があったとしても、代わりにファイルを使用することをお勧めします。コマンド ラインの引数は、 によって生成されるプロセス リストに含まれている可能性が高いps -A -ocmd
ため、他のユーザーがそれらを見ることができます。一方、この.my.cnf
ファイルは ( を使用して) あなただけが読み取り可能にすることができ (そしてそうすべきですchmod 0600 ~/.my.cnf
)、自動的に使用されます。そのファイルに次の行を含めます。
[client]
user=root
password=
mysql -e "SHOW DATABASES"
クライアントはそのファイルから資格情報を取得するため、単純なもので十分です。
6.1.2.1を参照。パスワードを提供できるさまざまな方法、およびそれぞれの利点と欠点については、パスワード セキュリティのエンド ユーザー ガイドラインを参照してください。4.2.3.3を参照してください。.my.cnf
このファイルに関する一般的な情報については、オプション ファイルを使用してください