¿Es posible tener contraseñas configuradas por base de datos o por host en .my.cnf


47

Tengo lo siguiente en mi ~/.my.cnf

[client]
password="somepass"

pero esta no es la contraseña que uso para cada usuario @ host / base de datos a la que me conecto. ¿Hay alguna forma de especificar en la configuración diferentes contraseñas para diferentes cosas para que no tenga que escribirlas?


[El usuario @DTest respondió una pregunta como esta en mayo de este año] [1] [1]: dba.stackexchange.com/questions/2820/…
— RolandoMySQLDBA

Respuestas:


64

Como respondí aquí , puede agregar una sección para cada usuario / host / db al que se conecte usando la sintaxis en su ~/.my.cnf:

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

Una vez que esté en su usuario .my.cnf, puede utilizarlo haciendo esto en una línea de comando:

$ mysql --defaults-group-suffix=host1

Según lo prometido, +1 !!!
— RolandoMySQLDBA

¿Podrías explicar esto --defaults-group-suffix?
— Oteo

Agradable. Me tomó un tiempo averiguar el resto desde aquí, pero para una copia de seguridad de mysql Cron, ahora puedo usar mysqldump --defaults-group-suffix = host1 -P 3306 -h 111.0.0.xxx --ssl -u db_usr db_name > / home / myaccount / backups / db_name _ $ (echo $ (fecha '+ \% Y \% m \% d'). sql.gz) para crear una copia de seguridad comprimida. ¡Gracias!
— user1324409

Nota: si coloca esto en un archivo my.cnf global, como /etc/mysql/my.cnf, pero tiene un definido por el usuario .my.cnfcon [client]definido en él, este último anulará la configuración en el archivo global. abucheo.
— Oteo

Tenga en cuenta que la página de manual de MariaDB afirma falsamente que un sufijo de xleerá la sección, [client_x]pero en realidad necesita el sufijo _xpara eso
— Daniel Böhmer

8

No se recomienda poner contraseñas claras en los archivos de texto desde mysql 5.6.6.

Puede usar mysql_config_editorpara guardar contraseñas cifradas también para proporcionar diferentes contraseñas para diferentes conexiones https://dev.mysql.com/doc/refman/5.6/en/mysql-config-editor.html


3
Seguridad por oscuridad ...
— Federico Razzoli

+1 por mencionar mysql_config_editor
— RolandoMySQLDBA

2
Hasta que este programa (1) no sea compatible con versiones anteriores, (2) permita el despliegue automático de contraseñas (es decir, no obligue a leer contraseñas en TTY), no recomiendo este método.
— Oteo

¿MariaDB tiene soporte o función comparable para que coincida con mysql_config_editor?
— Jeremy Hajek

@JeremyHajek No, no lo hace, y probablemente nunca lo hará porque los desarrolladores de MariaDB señalan que solo proporciona una falsa sensación de seguridad mejorada: MySQL 5.6: ¿Seguridad a través de la complacencia?
— Bloodgain

8

La otra respuesta es correcta. Lamentablemente mysqladminno es compatible --defaults-group-suffix(al menos no la versión que estoy usando).

Por lo tanto recurrí a usar --defaults-file=HOST.cnfen su lugar, que trabaja para mysql, mysqladminy mysqldump.


2
La adición de este a mi .bash_profile lo hace aún más fácil:alias my-host='mysql --defaults-file=HOST.cnf'
— spyle
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.