回答:
.my.cnfホームディレクトリに次のような名前のファイルを作成します。ファイルシステムの権限が、所有者のユーザーだけが読み取れるように設定されていることを確認してください(0600)。
[client]
host = localhost
user = username.
password = thepassword
socket = /var/run/mysqld/mysqld.sock
#database = mysql
質問mysqldumpにもタグを付けたので、この質問を確認する必要があります。
rootパスワードなしでcronジョブでmysqldumpを使用する
更新(2016-06-29)mysql 5.6.6以降を実行している場合は、暗号化されたファイルに認証情報を保存できるようにするmysql_config_editorツールを確認する必要があります。これについて私に言及してくれたGiovanniに感謝します。
mysql_config_editorユーティリティを使用して、認証資格情報をという名前の暗号化されたログインパスファイルに保存できます.mylogin.cnf。
資格情報の新しいセットを作成するには、次のコマンドを実行します。
mysql_config_editor set --host=db.host.org --user=dbuser --password
プロンプトが表示されたら、パスワードを入力します。
これにより、認証資格情報がデフォルトのclientログインパスに保存されます。
別の--login-pathオプションを指定して、複数の認証資格情報を保存できます。
mysql_config_editor set --login-path=db2 --host=db2.host.org --user=dbuser --password
デフォルトでは、mysqlクライアントは[client]と[mysql]グループを他のオプションファイルから読み取るため、ログインパスファイルからも読み取ります。では--login-pathオプション、クライアントプログラムは、さらに、ログインパスファイルから指定のログインパスをお読みください。他のオプションファイルから読み取られたオプショングループは同じままです。次のコマンドを検討してください。
mysql --login-path=db2
mysqlクライアントは読み込み[client]および[mysql]その他のオプションファイルから、と[client]、[mysql]と、[mypath]ログインパスファイルから。
構成ファイルに保存されているすべての情報を出力するには、次のコマンドを実行します。
mysql_config_editor print --all=true
ユーティリティの詳細については、「mysql_config_editor — MySQL構成ユーティリティ」を参照してください。
.mylogin.cnfはmy_print_defaults -s [use your login-path]、パスワードをプレーンテキストで表示するために使用できるため、まったく安全であるように見せかけることはできません。これが、MariaDBがこの「あいまいなセキュリティ」アプローチをサポートしない理由です。
上記の方法とは別の方法もありますが、他の誰かがモニターを監視している場合や、履歴を保存している場合は、セキュリティ上のリスクになる可能性があります。
それにもかかわらず、これはプロンプトが表示されないようにするオプションであり、使い捨てのDockerイメージなどで使用するオプションです。
mysql -u YOUR_USER --password=YOUR_PASSWORD_HERE your_database -e "your query" etc.
プロンプトは表示されません。必要に応じて、シェルに一時的なエイリアスを設定できます。
注意して使用してください。
mysql Ver 14.14 Distrib 5.5.61-38.13、readline 5.1を使用するdebian-linux-gnu(x86_64)用