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.
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.
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:
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'.
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
Respuestas:
Cree un archivo nombrado
.my.cnf
en 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).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.
fuente
Puede usar la
mysql_config_editor
utilidad 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:
e ingrese su contraseña cuando se le solicite.
Esto almacenará sus credenciales de autenticación en la
client
ruta de inicio de sesión predeterminada .Puede almacenar múltiples credenciales de autenticación especificando una
--login-path
opción diferente :De forma predeterminada, el
mysql
cliente 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-path
opció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:El
mysql
cliente 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:
Se puede encontrar más información sobre la utilidad en "mysql_config_editor - MySQL Configuration Utility" .
fuente
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'.fuente
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 ...
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
fuente