Réponses:
J'ai trouvé la réponse. Vous devez citer le mot de passe, comme ceci:
mysql -u root -p'PASSWORD'
Vous devez le faire si le mot de passe contient l’un des caractères suivants: * ? [ < > & ; ! | $ ( )
lorsque vous utilisez les guillemets, assurez-vous qu'il n'y a pas d'espace:
entre -p
et 'PASSWORD'
ou
entre --password=
et'PASSWORD'
correct:
mysql -u root -p'PASSWORD'
mysql -u root --password='PASSWORD'
ne marche pas:
mysql -u root -p 'PASSWORD'
mysql -u root --password = 'PASSWORD'
vous pouvez également définir une variable, puis l'utiliser pour la commande (toujours sans espace)
MSQLPWD='PASSWORD'
mysql -u root -p$MSQLPWD
Cela dépend de votre coquille. Utilisez-vous Microsoft Windows ou Linux? Si vous utilisez Linux / BASH, il est probable que $$ soit interprété comme votre ID de processus actuel. Avez-vous essayé de mettre une barre oblique inverse devant chaque signe dollar? par exemple
mysqldump \
-hlocalhost \
-uUSERNAME \
-pPA\$\$W0RD \
DATABASE \
| gzip -c \
> /home/USERNAME/backups-mysql/BACKUP.gz
Notez que gzip nécessite probablement l’option "-c" si vous voulez compresser en STDOUT.