MySQLクライアントのパスワードを保存するか、認証なしのセットアップパスワード


11

mysqlコマンドラインクライアントを使用していますが、クライアントを起動するたびにパスワードを入力する必要はありません。私のオプションは何ですか?


以前のいくつかの質問に対する回答を受け入れてください。それらの回答のいくつかは正しい解決策であると思われるため、回答の左側にある白抜きのチェックマークをクリックしてください。
シェーンマッデン

回答:


15

.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に感謝します。


これは素晴らしいことでした..サンキュー
旅行

回答で問題が解決した場合は、チェックマークをクリックして問題を受け入れます。
Zoredache

1
これは、パスワードをプレーンテキストとして保存します。これは、セキュリティの観点から私が推奨しない習慣です。
Giovanni

@Giovanni確かに、あなたの回答であなたが言及したmysql_config_editorは便利ですが、5.6.6を実行するまでは利用できません。古いバージョンのディストリビューションが現在も存在します。
Zoredache 2016年

しかし、これはWindowsではどのように行われるのでしょうか。
Wolfpack'08

9

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構成ユーティリティ」を参照してください


2

.mylogin.cnfmy_print_defaults -s [use your login-path]、パスワードをプレーンテキストで表示するために使用できるため、まったく安全であるように見せかけることはできません。これが、MariaDBがこの「あいまいなセキュリティ」アプローチをサポートしない理由です。


それでは、この質問に対する答え何ですか?
Pierre.Vriens 2018年

0

上記の方法とは別の方法もありますが、他の誰かがモニターを監視している場合や、履歴を保存している場合は、セキュリティ上のリスクになる可能性があります

それにもかかわらず、これはプロンプトが表示されないようにするオプションであり、使い捨ての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)用

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.