64 votes

Echapper un mot de passe en utilisant la console mysqldump

J'exécute un mysqldump via un bash script et j'ai rencontré un problème avec un mot de passe qui contient des caractères spéciaux.

mysqldump -hlocalhost -uUSERNAME -pPA$$W0RD DATABASE | 
                                gzip > /home/USERNAME/backups-mysql/BACKUP.gz

Comment puis-je échapper au mot de passe ?

98voto

psx Points 1815

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 comporte l'un des caractères suivants : * ? [ < > & ; ! | $ ( )

13voto

MReiter Points 131

Lorsque vous utilisez les guillemets, assurez-vous qu'il n'y a pas d'espace :
entre -p y 'PASSWORD' ou
entre --password= y 'PASSWORD'

correct :
mysql -u root -p'PASSWORD'
mysql -u root --password='PASSWORD'

ne fonctionne pas :
mysql -u root -p 'PASSWORD'
mysql -u root --password = 'PASSWORD'

vous pouvez également définir une variable et l'utiliser ensuite pour la commande (toujours sans espace entre les deux) MSQLPWD='PASSWORD'
mysql -u root -p$MSQLPWD

2voto

PP. Points 2435

Dépend de votre Shell. 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 de dollar ? par ex.

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 vers STDOUT.

2voto

antichris Points 1118

Essayez de mettre un antislash ( \ ) ces caractères spéciaux.

0voto

M.Ali El-Sayed Points 101

Si vous utilisez mysqldump.exe sous Windows, vous devez utiliser les guillemets doubles, et non les guillemets simples, comme suit

mysqldump.exe --user=roo --password="WE&&^6HJg&^7" .....

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X