È 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.