J'exécute un mysqldump via un script bash et j'ai rencontré un problème avec un mot de passe contenant des caractères spéciaux.
mysqldump -hlocalhost -uUSERNAME -pPA$$W0RD DATABASE |
gzip > /home/USERNAME/backups-mysql/BACKUP.gz
Comment puis-je échapper le mot de passe?
passwords
escape-characters
mysqldump
Psynnott
la source
la source
lorsque vous utilisez les guillemets, assurez-vous qu'il n'y a pas d'espace:
entre
-p
et'PASSWORD'
ouentre
--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
la source
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
Notez que gzip nécessite probablement l’option "-c" si vous voulez compresser en STDOUT.
la source
Essayez d’inverser
\
les caractères spéciaux ( ).la source