これらのオプションを作成する別の方法。
書くことができます
mysql -u "$MYSQL_ROOT" -p"$MYSQL_PASS" -e "SHOW DATABASES"
空の文字列を個別の引数として渡します。ただし、以下のコメントは、クライアントが引き続きパスワードを要求することを示しています。おそらく、空の引数をパスワードではなくデータベース名として解釈します。したがって、代わりに次のことを試すことができます:
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
の一般的な情報 ファイル