Almacene la contraseña del cliente MySQL o configure la contraseña sin autenticación

11

Estoy usando el cliente de línea de comando mysql y no quiero proporcionar la contraseña cada vez que inicio el cliente. ¿Cuáles son mis opciones?

Viaje
fuente
Acepte las respuestas de algunas de sus preguntas anteriores, ya que parece que varias de esas respuestas han sido soluciones correctas. Haga clic en la marca de verificación que se encuentra a la izquierda de la respuesta.
Shane Madden

Respuestas:

15

Cree un archivo nombrado .my.cnfen su directorio de inicio que se vea así. Asegúrese de que los permisos del sistema de archivos estén configurados de tal manera que solo el usuario propietario pueda leerlo (0600).

[client]
host     = localhost
user     = username.
password = thepassword
socket   = /var/run/mysqld/mysqld.sock
#database = mysql

Como también etiquetó su pregunta mysqldump, debería mirarla.

Usando mysqldump en el trabajo cron sin contraseña de root

Actualización (2016-06-29) Si está ejecutando mysql 5.6.6 o superior, debe consultar la herramienta mysql_config_editor que le permite almacenar credenciales en un archivo cifrado. Gracias a Giovanni por mencionarme esto.

Zoredache
fuente
Esto es genial funcionó .. Thanku
Viaje
Si la respuesta resolvió su problema, entonces debe hacer clic en la marca de verificación para aceptarlo.
Zoredache
1
Esto almacenará la contraseña como texto sin formato, una práctica que desalentaría desde un punto de vista de seguridad.
Giovanni
@Giovanni seguro, aunque el mysql_config_editor que menciona en su respuesta, aunque útil, no está disponible hasta que esté ejecutando 5.6.6. Todavía hay distribuciones hoy que tienen versiones anteriores.
Zoredache
Pero, ¿cómo se hace esto en Windows?
Wolfpack'08
9

Puede usar la mysql_config_editorutilidad para almacenar credenciales de autenticación en un archivo de ruta de inicio de sesión cifrado denominado .mylogin.cnf.

Para crear un nuevo conjunto de credenciales, ejecute:

mysql_config_editor set --host=db.host.org --user=dbuser --password

e ingrese su contraseña cuando se le solicite.

Esto almacenará sus credenciales de autenticación en la clientruta de inicio de sesión predeterminada .

Puede almacenar múltiples credenciales de autenticación especificando una --login-pathopción diferente :

mysql_config_editor set --login-path=db2 --host=db2.host.org --user=dbuser --password

De forma predeterminada, el mysqlcliente lee los grupos [client]y [mysql]de otros archivos de opciones, por lo que también los lee desde el archivo de ruta de inicio de sesión. Con una --login-pathopción, los programas cliente también leen la ruta de inicio de sesión nombrada del archivo de ruta de inicio de sesión. Los grupos de opciones leídos de otros archivos de opciones siguen siendo los mismos. Considere este comando:

mysql --login-path=db2

El mysqlcliente lee [client]y [mysql]de otros ficheros de opciones, y [client], [mysql]y [mypath]de la ruta de archivo de inicio de sesión.

Para imprimir toda la información almacenada en el archivo de configuración, ejecute:

mysql_config_editor print --all=true

Se puede encontrar más información sobre la utilidad en "mysql_config_editor - MySQL Configuration Utility" .

Giovanni
fuente
2

No debemos pretender que .mylogin.cnf es seguro, ya que puedo usarlo my_print_defaults -s [use your login-path]para hacer que esa contraseña aparezca en texto plano. Es por eso que MariaDB no admite este enfoque de 'seguridad por oscuridad'.

Mark Butler
fuente
Entonces, ¿cuál es la respuesta a esta pregunta?
Pierre.Vriens
0

Hay otra forma, ortogonal a los métodos mencionados anteriormente, pero puede ser un riesgo de seguridad si alguien más está mirando su monitor, O si está guardando su historial .

Sin embargo, es una opción, que evitará que se le solicite, y una que uso en las imágenes de la ventana acoplable desechable y tal ...

mysql -u YOUR_USER --password=YOUR_PASSWORD_HERE your_database -e "your query" etc.

No se le pedirá, puede establecer un alias temporal en el shell si lo desea.

Usar con precaución.

mysql Ver 14.14 Distrib 5.5.61-38.13, para debian-linux-gnu (x86_64) usando readline 5.1

tjb
fuente