mysqldump console을 사용하여 패스워드를 이스케이프한다.


49

나는 bash 스크립트를 통해 mysqldump를 실행 중이며 특수 문자가 포함 된 암호에 문제가 발생했습니다.

mysqldump -hlocalhost -uUSERNAME -pPA$$W0RD DATABASE | 
                                gzip > /home/USERNAME/backups-mysql/BACKUP.gz

어떻게 암호를 벗어나나요?

답변:


80

대답을 찾았습니다. 다음과 같이 암호를 인용해야합니다.

mysql -u root -p'PASSWORD'

암호에 다음 문자가 있으면이 작업을 수행해야합니다. * ? [ < > & ; ! | $ ( )


암호에서 아포스트로피를 피하는 법을 알고 있습니까?
Steve Mayne

3
@SteveMayne 나는 그것 앞에 단지 백 슬래시가 있다고 생각한다.
psynnott

3
괄호도 따옴표로 묶어야합니다.
Félix Gagnon-Grenier

1
Windows에서 큰 따옴표를 사용해야한다는 것을 알았습니다. 작은 따옴표가 작동하지 않았습니다. (MySQL 5.6)
TheStoryCoder

1
비밀번호의 공란에는 ''
Hafenkranich

10

따옴표를 사용할 때 공백이 없는지 확인하십시오.
중에서 -p'PASSWORD' 또는
중에서 --password='PASSWORD'

옳은:
mysql -u root -p'PASSWORD'
mysql -u root --password='PASSWORD'

작동하지 않습니다.
mysql -u root -p 'PASSWORD'
mysql -u root --password = 'PASSWORD'

변수를 정의한 다음 명령에 사용할 수도 있습니다 (그 사이에는 공백이 없습니다) MSQLPWD='PASSWORD'
mysql -u root -p$MSQLPWD


감사! 생명의 은인
Pavel Tarno

2

당신의 껍질에 달려 있습니다. Microsoft Windows 또는 Linux를 사용하고 있습니까? Linux / BASH를 사용한다면 $$이 현재 프로세스 ID로 해석 될 가능성이 있습니다. 달러 기호 앞에 백 슬래시를 넣으려고 했습니까? 예 :

mysqldump \
  -hlocalhost \
  -uUSERNAME \
  -pPA\$\$W0RD \
  DATABASE \
| gzip -c \
> /home/USERNAME/backups-mysql/BACKUP.gz

STDOUT으로 압축하려면 gzip에 "-c"옵션이 필요합니다.


내가 사용하고있는 암호는 PA $$ W0RD가 아니지만 예제로 사용했습니다. 내가 사용하고있는 실제 암호에는 앰퍼샌드가 있으며 이것이 문제의 원인입니다. 내가 제안한대로 역 슬래시를 사용했지만 작동하지 않았습니다.
psynnott

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