답변:
나는 $MyPass
당신의 대본에서 제대로 설정되지 않은 내기를 것 입니다. mysql 명령 행 도구 중 하나 -p
가 바로 뒤에 비밀번호가없는 것을 수신하면 , 비밀번호를 입력하라는 메시지가 표시됩니다. 반면에 잘못된 비밀번호 (또는 잘못된 사용자 이름 또는 유사한)를 제공 한 경우 연결에 실패합니다.
따라서 echo
해당 줄의 시작 부분에 명령을 배치하고 다음과 같이 스크립트를 다시 실행 하는 것이 좋습니다 .
echo $MYSQLDUMP -u backup -p$MyPass $DB
출력 리디렉션을 제거하는 것을 잊지 마십시오.
더 나은 해결책은 구성 파일에 사용자 이름과 비밀번호를 저장하고 해당 구성 파일을 가리키는 것입니다. ps를 실행할 수있는 모든 사람이 명령 줄에 입력하면 서버의 암호를 찾을 수 있습니다.
전달 --defaults-extra-file=/pathto/database.cnf
mysql을 덤프.
구성 파일은 다음과 같아야합니다. 백업 프로세스 만 구성 파일을 열 수 있도록 파일 시스템 권한을 설정하십시오.
[client]
host = servername.domain.tld
user = backup
password = strongpassword
업데이트 (2016-06-29) mysql 5.6.6 이상을 실행 하는 경우 암호화 된 파일에 자격 증명 을 저장할 수 있는 mysql_config_editor 도구를 찾아야 합니다. 이것을 언급 해 준 Giovanni 에게 감사드립니다 .
aoeu1234
, 내 설정 파일이있다을 password = 'aoeu1234'
; 그렇지 않으면 무단 오류가 발생합니다.