Zmiana hasła za pomocą konsoli mysqldump


55

Korzystam z mysqldump za pomocą skryptu bash i napotkałem problem z hasłem zawierającym znaki specjalne.

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

Jak mogę uniknąć hasła?

Odpowiedzi:


84

Znalazłem odpowiedź Musisz podać hasło:

mysql -u root -p'PASSWORD'

Musisz to zrobić, jeśli hasło ma jeden z następujących znaków: * ? [ < > & ; ! | $ ( )


Czy wiesz, jak uciec apostrofom w haśle?
Steve Mayne

3
@ SteveMayne myślę, że to tylko odwrotny ukośnik przed nim
psynnott

3
nawiasy też muszą być w cudzysłowie.
Félix Gagnon-Grenier

1
W systemie Windows stwierdziłem, że muszę użyć podwójnych cudzysłowów. Pojedyncze cytaty nie działały. (MySQL 5.6)
TheStoryCoder

1
puste pola w haśle również wymagają „”
Hafenkranich,

12

gdy używasz cudzysłowów, upewnij się, że nie ma spacji:
między -pi 'PASSWORD' lub
między --password=i'PASSWORD'

poprawny:
mysql -u root -p'PASSWORD'
mysql -u root --password='PASSWORD'

nie działa:
mysql -u root -p 'PASSWORD'
mysql -u root --password = 'PASSWORD'

możesz także zdefiniować zmienną, a następnie użyć jej dla polecenia (wciąż bez odstępów między nimi) MSQLPWD='PASSWORD'
mysql -u root -p$MSQLPWD


2

Zależy od twojej powłoki. Czy korzystasz z systemu Microsoft Windows lub Linux? Jeśli używasz systemu Linux / BASH, prawdopodobne jest, że $$ jest interpretowana jako bieżący identyfikator procesu. Czy próbowałeś umieścić odwrotny ukośnik przed każdym znakiem dolara? na przykład

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

Zauważ, że gzip prawdopodobnie wymaga opcji „-c”, jeśli chcesz skompresować do STDOUT.


Hasło, którego używam, to nie PA $$ W0RD, ale użyłem tego jako przykładu. Rzeczywiste hasło, którego używam, zawiera znak handlowe i to jest przyczyną problemu. Użyłem odwrotnego ukośnika, jak sugerowałeś, ale to nie zadziałało.
psynnott,

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.