DB 사용자 비밀번호를 명령 줄 도구 mysqladmin에 전달하는 방법이 있습니까?


102

현재 다음을 사용하고 있지만 항상 수동으로 암호를 입력하라는 메시지가 표시됩니다. 실행 파일을 시작할 때 명령 줄에서 전달할 방법이 있습니까?

mysqladmin processlist -u root -p

4
환경 ( export MYSQL_PWD=muhpassword) 에서 MYSQL_PWD를 설정 하고 -p. MySQL 프로그램 환경 변수를 참조하십시오 . 매뉴얼의 심각한 경고 에도 불구하고 이것은 다소 안전 합니다. 환경을 뒤덮을 수있는 동일한 셸에서 이상한 warez를 시작하고 darkaspirator.cc로 보내지 않는 한.
David Tonhofer

답변:


190

답을 찾았습니다 ....

mysqladmin processlist -u root -pYOURPASSWORDHERE

암호와 -p 사이에 공백이 없습니다.


14
암호 같이 공백이 포함 된 경우 따옴표도 사용할 수 있습니다 :-p'YOURPASSWORD HERE'
Vigintas Labakojis에게

40
와우 ... 진짜 직관적 인 ... 공간 사이에 -h localhost-u root있지만 -pPASSWORD. 필요 이상으로 모든 것을 어렵게 만드는 고전적인 프로그래머.
Kolob Canyon 2016 년

4
당신은 -u와 루트 사이의 공간을 생략 할 수 @KolobCanyon, -uroot잘 작동
피터 Ajtai

11
경고 : 이것은 안전하지 않은 것으로 간주됩니다 : dev.mysql.com/doc/mysql-security-excerpt/5.7/en/…
neverendingqs

3
@KolobCanyon : 암호가 공백으로 시작하면 어떻게됩니까? ;) 프로그래머는 공백이 옵션과 그 값을 구분하는지 또는 암호의 첫 번째 문자인지 결정할 수 없습니다…
Stéphane

43

시험:

--password=PasswordTextHere 

"빈"암호를 전달해야 할 때 유용합니다 (물론 테스트 목적으로).
Ivo Pereira

이것은 또한 명령 줄에 빈 암호를 전달하는 유일한 옵션 인 것 같지 않습니다 (예 : 샌드 박스 인스턴스에서)
penCsharpener

10

이것은 작동합니다. mysql -uroot -p'password'

mysql 솔루션을 자동화하려는 경우 변수의 암호를 사용할 수 있습니다.

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

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.