Ich habe die Antwort gefunden. Sie müssen das Passwort wie folgt angeben:
mysql -u root -p'PASSWORD'
Sie müssen dies tun, wenn das Kennwort eines der folgenden Zeichen enthält: * ? [ < > & ; ! | $ ( )
Ich führe ein mysqldump über ein Bash-Skript aus und habe ein Problem mit einem Kennwort festgestellt, das Sonderzeichen enthält.
mysqldump -hlocalhost -uUSERNAME -pPA$$W0RD DATABASE | gzip > /home/USERNAME/backups-mysql/BACKUP.gz
Wie kann ich das Passwort umgehen?
Ich habe die Antwort gefunden. Sie müssen das Passwort wie folgt angeben:
mysql -u root -p'PASSWORD'
Sie müssen dies tun, wenn das Kennwort eines der folgenden Zeichen enthält: * ? [ < > & ; ! | $ ( )
when you use the quotes, make sure there is no space :
between -p
and 'PASSWORD'
or
between --password=
and 'PASSWORD'
correct:
mysql -u root -p'PASSWORD'
mysql -u root --password='PASSWORD'
does not work:
mysql -u root -p 'PASSWORD'
mysql -u root --password = 'PASSWORD'
you can also define a variable and then use it for the command (still with no spaces in between) MSQLPWD='PASSWORD'
mysql -u root -p$MSQLPWD
Kommt auf deine Schale an. Verwenden Sie Microsoft Windows oder Linux? Wenn Sie Linux / BASH verwenden, wird $$ wahrscheinlich als Ihre aktuelle Prozess-ID interpretiert. Haben Sie versucht, vor jedem Dollarzeichen einen Backslash zu setzen? z.B
mysqldump \ -hlocalhost \ -uUSERNAME \ -pPA\$\$W0RD \ DATABASE \ | gzip -c \ > /home/USERNAME/backups-mysql/BACKUP.gz
Beachten Sie, dass für gzip wahrscheinlich die Option "-c" erforderlich ist, wenn Sie nach STDOUT komprimieren möchten.
Versuchen Sie, \
diese speziellen Zeichen rückwärts zu schlagen.