È possibile avere password configurate per database o per host in .my.cnf


47

Ho il seguente nel mio ~/.my.cnf

[client]
password="somepass"

ma questa non è la password che uso per ogni utente @ host / database a cui mi connetto. Esiste un modo per specificare nella configurazione password diverse per cose diverse in modo da non doverle digitare?


[L'utente @DTest ha risposto a una domanda come questa nel maggio di quest'anno] [1] [1]: dba.stackexchange.com/questions/2820/…
— RolandoMySQLDBA

Risposte:


64

Come ho risposto qui , puoi aggiungere una sezione per ogni utente / host / db a cui ti colleghi utilizzando la sintassi nel tuo ~/.my.cnf:

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

Una volta che questo è nel tuo utente .my.cnf, puoi utilizzarlo facendo ciò su una riga di comando:

$ mysql --defaults-group-suffix=host1

Come promesso, +1 !!!
— RolandoMySQLDBA,

Potresti spiegare questo --defaults-group-suffix?
— Otheus,

Bello. Mi ci è voluto un po 'per capire il resto da qui ma per un backup mysql Cron ora posso usare mysqldump --defaults-group-suffix = host1 -P 3306 -h 111.0.0.xxx --ssl -u db_usr nome_db > / home / myaccount / backups / nome_db _ $ (echo $ (data '+ \% Y \% m \% d'). sql.gz) per creare un backup gzip. Grazie!
— user1324409

Nota: Se si mette questo in un my.cnf globale, come ad esempio /etc/mysql/my.cnf, ma hanno un definito dall'utente .my.cnfcon [client]ivi definiti, quest'ultimo avrà la precedenza le impostazioni nel file globale! boo.
— Otheus,

Si noti che la manpage di MariaDB afferma erroneamente che un suffisso di xleggerà la sezione, [client_x]ma in realtà è necessario il suffisso _xper questo
— Daniel Böhmer,

8

Non è consigliabile inserire password chiare nei file di testo poiché mysql 5.6.6.

È possibile utilizzare mysql_config_editorper salvare le password crittografate anche per fornire password diverse per connessioni diverse https://dev.mysql.com/doc/refman/5.6/en/mysql-config-editor.html


3
Sicurezza per oscurità ...
— Federico Razzoli,

+1 per menzionare mysql_config_editor
— RolandoMySQLDBA

2
Fino a quando questo programma non viene (1) portato alle versioni precedenti, (2) consente la distribuzione automatica delle password (ovvero, non forzando la lettura delle password su TTY), non consiglio questo metodo.
— Otheus,

MariaDB ha supporto o funzionalità comparabili per abbinare mysql_config_editor?
— Jeremy Hajek,

@JeremyHajek No, non lo è, e probabilmente non lo farà mai perché gli sviluppatori di MariaDB sottolineano che fornisce solo un falso senso di sicurezza migliorata: MySQL 5.6: Sicurezza attraverso Complacency?
— Bloodgain,

8

L'altra risposta è corretta. Purtroppo mysqladminnon supporta --defaults-group-suffix(almeno non la versione che sto usando).

Quindi ho fatto ricorso all'utilizzo di --defaults-file=HOST.cnfinvece, che funziona per mysql, mysqladmine mysqldump.


2
L'aggiunta di questo al mio .bash_profile mi ha reso ancora più semplice:alias my-host='mysql --defaults-file=HOST.cnf'
— spyle,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.