Відповіді:
Я знайшов відповідь. Ви повинні цитувати пароль, наприклад:
mysql -u root -p'PASSWORD'
Ви повинні зробити це, якщо пароль містить будь-який з наступних символів: * ? [ < > & ; ! | $ ( )
коли ви використовуєте лапки, переконайтеся , що немає простору:
між -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
Залежить від вашої оболонки. Використовуєте Microsoft Windows або Linux? Якщо ви використовуєте Linux / BASH, ймовірно, що $$ інтерпретується як ваш поточний ідентифікатор процесу. Чи спробували ви поставити зворотній косою рису перед знаком кожного долара? напр
mysqldump \
-hlocalhost \
-uUSERNAME \
-pPA\$\$W0RD \
DATABASE \
| gzip -c \
> /home/USERNAME/backups-mysql/BACKUP.gz
Зауважте, що gzip, ймовірно, вимагає опції "-c", якщо ви хочете стиснути до STDOUT.