Respostas:
Eu encontrei a resposta. Você precisa citar a senha, assim:
mysql -u root -p'PASSWORD'
Você deve fazer isso se a senha tiver um dos seguintes caracteres: * ? [ < > & ; ! | $ ( )
ao usar as aspas, verifique se não há espaço:
entre -p
e 'PASSWORD'
ou
entre --password=
e'PASSWORD'
corrigir:
mysql -u root -p'PASSWORD'
mysql -u root --password='PASSWORD'
não funciona:
mysql -u root -p 'PASSWORD'
mysql -u root --password = 'PASSWORD'
você também pode definir uma variável e usá-la para o comando (ainda sem espaços no meio)
MSQLPWD='PASSWORD'
mysql -u root -p$MSQLPWD
Depende do seu shell. Você está usando o Microsoft Windows ou Linux? Se você estiver usando Linux / BASH, é provável que $$ esteja sendo interpretado como seu ID de processo atual. Você já tentou colocar uma barra invertida na frente de cada cifrão? por exemplo
mysqldump \
-hlocalhost \
-uUSERNAME \
-pPA\$\$W0RD \
DATABASE \
| gzip -c \
> /home/USERNAME/backups-mysql/BACKUP.gz
Note que o gzip provavelmente requer a opção "-c" se você deseja compactar no STDOUT.