¿Hay alguna forma de pasar la contraseña de usuario de la base de datos a la herramienta de línea de comandos mysqladmin?


102

Actualmente utilizo lo siguiente, pero SIEMPRE me pide que escriba manualmente la contraseña. ¿Hay alguna forma de pasarlo en la línea de comandos al iniciar el ejecutable?

mysqladmin processlist -u root -p

3
Configure MYSQL_PWD en el entorno ( export MYSQL_PWD=muhpassword) y ejecute su comando sin el -p. Consulte Variables de entorno del programa MySQL . A pesar de las terribles advertencias del manual , esto es bastante seguro . A menos que inicie warez extraño en el mismo shell que podría aspirar su entorno y enviarlo a darkaspirator.cc.
David Tonhofer

Respuestas:


190

Acabo de descubrir la respuesta ...

mysqladmin processlist -u root -pYOURPASSWORDHERE

No hay espacio entre su contraseña y la -p


14
las comillas también se permiten si la contraseña contiene espacios, como en:-p'YOURPASSWORD HERE'
Vigintas Labakojis

40
Wow ... realmente intuitivo ... Espacio entre -h localhosty -u rootpero no -pPASSWORD. Los programadores clásicos hacen que todo sea más difícil de lo necesario.
Kolob Canyon

4
@KolobCanyon puede omitir el espacio entre -u y raíz, -urootfunciona bien
Peter Ajtai

11
Advertencia: esto se considera inseguro: dev.mysql.com/doc/mysql-security-excerpt/5.7/en/…
neverendingqs

3
@KolobCanyon: ¿Qué pasa si su contraseña comienza con un espacio? ;) El programador no puede decidir si el espacio separa la opción y su valor o es el primer carácter de la contraseña…
Stéphane

43

Tratar:

--password=PasswordTextHere 

Útil cuando necesita pasar una contraseña "en blanco" (para propósitos de prueba, por supuesto).
Ivo Pereira

Esta también parece ser la única opción para pasar una contraseña vacía en la línea de comando (en una instancia de sandbox, por ejemplo)
penCsharpener

10

Esto debería funcionar: mysql -uroot -p'password'

Si está tratando de automatizar la solución mysql, puede usar la contraseña de la variable:

mysql_pass=$(sudo grep -oP "temporary password is generated for root@localhost: \K(.*)" /var/log/mysqld.log)

mysql -uroot -p"$mysql_pass" < somescript.sql

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.