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

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


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

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 

Ú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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.