.my.cnfでデータベースごとまたはホストごとにパスワードを構成することは可能ですか?


47

私は次のものを持っています ~/.my.cnf

[client]
password="somepass"

しかし、これは接続するすべてのuser @ host / databaseに使用するパスワードではありません。構成でさまざまなパスワードを指定する方法はありますか?それらを入力する必要はありませんか?


[1] [1] [ユーザー@DTestは、今年5月にこのような質問に答え] dba.stackexchange.com/questions/2820/...
RolandoMySQLDBA

回答:


64

ここで答えたように、次の構文を使用して、接続する各ユーザー/ホスト/データベースのセクションを追加できます~/.my.cnf

[clienthost1]   # Note: client + host1
user=myuser
password=mypass
database=dbname
host=server.location.com

これがユーザーの.my.cnfになったら、コマンドラインでこれを実行することで利用できます。

$ mysql --defaults-group-suffix=host1

約束どおり、+ 1 !!!
RolandoMySQLDBA

この--defaults-group-suffixについて説明してもらえますか?
オテウス

いいね ここから残りを理解するのに時間がかかりましたが、mysql Cronバックアップの場合、mysqldump --defaults-group-suffix = host1 -P 3306 -h 111.0.0.xxx --ssl -u db_usr db_nameを使用できるようになりました> / home / myaccount / backups / db_name _ $(echo $(date '+ \%Y \%m \%d')。sql.gz)を使用して、gzip圧縮されたバックアップを作成します。ありがとうございました!
user1324409

注:などのグローバルmy.cnfにこれを配置し、その中に/etc/mysql/my.cnfユーザー定義.my.cnf[client]定義されている場合、後者はグローバルファイルの設定をオーバーライドします!ブー。
オテウス

MariaDBのmanページが誤ってのサフィックスがあることを述べていることを注意xセクションを読みます[client_x]が、現実には、あなたが接尾辞必要_xそのために
ダニエル・ベーマー

8

mysql 5.6.6以降では、テキストファイルにクリアパスワードを配置することはお勧めしません。

mysql_config_editor暗号化されたパスワードを保存するために使用して、異なる接続に異なるパスワードを提供することもできますhttps://dev.mysql.com/doc/refman/5.6/en/mysql-config-editor.html


3
隠すことによるセキュリティ...
フェデリコRazzoli

mysql_config_editorに言及するための+1
RolandoMySQLDBA

1
このプログラムが(1)以前のバージョンにバックポートされ、(2)パスワードの自動展開が可能になる(つまり、TTYでパスワードを強制的に読み取らない)まで、この方法はお勧めしません。
オテウス

MariaDBには、mysql_config_editorと一致する同等のサポートまたは機能がありますか?
ジェレミーハジェック

@JeremyHajekいいえ、MariaDB開発者は、セキュリティの向上という誤った感覚しか提供しないと指摘しているため、そうではありません
ブラッドゲイン

8

他の答えは正しいです。残念ながらmysqladminサポートしていません--defaults-group-suffix(少なくとも私が使用しているバージョンはサポートしていません)。

したがって、私は使用してに頼っ--defaults-file=HOST.cnfために働く、その代わりmysqlmysqladminmysqldump


2
:私の.bash_profileにこれを追加するには、それがさらに容易になりalias my-host='mysql --defaults-file=HOST.cnf'
spyle
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.