Existe uma maneira de passar a senha do usuário DB para a ferramenta de linha de comando mysqladmin?

102

Atualmente, uso o seguinte, mas SEMPRE me pede para digitar a senha manualmente. Existe alguma maneira de passá-lo na linha de comando ao iniciar o executável?

mysqladmin processlist -u root -p
Ethan Allen
fonte
4
Defina MYSQL_PWD no ambiente ( export MYSQL_PWD=muhpassword) e execute seu comando sem o -p. Consulte Variáveis ​​de ambiente do programa MySQL . Apesar dos terríveis avisos do manual , isso é bastante seguro . A menos que você inicie warez estranho no mesmo shell que pode aspirar seu ambiente e enviá-lo para darkaspirator.cc.
David Tonhofer

Respostas:

190

Acabei de descobrir a resposta ....

mysqladmin processlist -u root -pYOURPASSWORDHERE

Sem espaço entre sua senha e o -p

Ethan Allen
fonte
14
as aspas também são permitidas se a senha contiver espaços, como em:-p'YOURPASSWORD HERE'
Vigintas Labakojis 16/07/2015
40
Uau ... muito intuitivo ... Espaço entre -h localhoste -u rootmas não -pPASSWORD. Programadores clássicos tornando tudo mais difícil do que o necessário.
Kolob Canyon
4
@KolobCanyon você pode omitir o espaço entre -u e root, -urootfunciona bem
Peter Ajtai
11
Aviso: isso é considerado inseguro: dev.mysql.com/doc/mysql-security-excerpt/5.7/en/…
neverendingqs
3
@KolobCanyon: E se sua senha começar com um espaço? ;) O programador não consegue decidir se o espaço separa a opção de seu valor ou é o primeiro caractere da senha…
Stéphane
43

Experimentar:

--password=PasswordTextHere 
ge0man
fonte
Útil quando você precisa passar uma senha "em branco" (para fins de teste, é claro).
Ivo Pereira
esta também parece ser a única opção para passar uma senha vazia na linha de comando (em uma instância de sandbox, por exemplo)
penCsharpener
10

Isso deve funcionar: mysql -uroot -p'password'

Se você está tentando automatizar a solução mysql, pode usar a senha da variável:

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

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

3lvinaz
fonte