Kennwort mit der mysqldump-Konsole sichern

40677
psynnott

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?

48

4 Antworten auf die Frage

79
psynnott

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: * ? [ < > & ; ! | $ ( )

Wissen Sie, wie Sie innerhalb des Passwortes Apostrophe umgehen können? Steve Mayne vor 10 Jahren 0
@SteveMayne Ich denke es ist nur ein Backslash davor psynnott vor 10 Jahren 3
Klammern müssen auch in Anführungszeichen stehen. Félix Gagnon-Grenier vor 9 Jahren 3
Unter Windows musste ich doppelte Anführungszeichen verwenden. Einzelne Anführungszeichen funktionierten nicht. (MySQL 5.6) TheStoryCoder vor 9 Jahren 1
Leerzeichen im Passwort erfordern auch das '' Hafenkranich vor 5 Jahren 1
9
MReiter

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

2
PP.

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.

The password I am using is not PA$$W0RD but I used this as an example. The actual password I am using has an ampersand and this is what is causing the problem. I used the backslash as you suggested but it did not work. psynnott vor 14 Jahren 0
2
U-D13

Versuchen Sie, \diese speziellen Zeichen rückwärts zu schlagen.