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?
passwords
escape-characters
mysqldump
psynnott
źródło
źródło
gdy używasz cudzysłowów, upewnij się, że nie ma spacji:
między
-p
i'PASSWORD'
lubmię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
źródło
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
Zauważ, że gzip prawdopodobnie wymaga opcji „-c”, jeśli chcesz skompresować do STDOUT.
źródło
Spróbuj backslashing (
\
) tych specjalnych znaków.źródło