Escap di una password usando la console mysqldump


56

Sto eseguendo un mysqldump tramite uno script bash e ho riscontrato un problema con una password che contiene caratteri speciali.

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

Come sfuggire alla password?

Risposte:


84

Ho trovato la risposta Devi citare la password, in questo modo:

mysql -u root -p'PASSWORD'

È necessario farlo se la password ha uno dei seguenti caratteri: * ? [ < > & ; ! | $ ( )


Sai come sfuggire agli apostrofi nella password?
Steve Mayne,

3
@SteveMayne penso che sia solo una
battuta d'arresto

3
le parentesi devono anche essere tra virgolette.
Félix Gagnon-Grenier,

1
Su Windows ho scoperto che dovevo usare le virgolette doppie. Le virgolette singole non hanno funzionato. (MySQL 5.6)
TheStoryCoder

1
gli spazi vuoti nella password richiedono anche ''
Hafenkranich il

12

quando usi le virgolette, assicurati che non ci sia spazio:
tra -pe 'PASSWORD' o
tra --password=e'PASSWORD'

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

non funziona:
mysql -u root -p 'PASSWORD'
mysql -u root --password = 'PASSWORD'

puoi anche definire una variabile e poi usarla per il comando (ancora senza spazi in mezzo) MSQLPWD='PASSWORD'
mysql -u root -p$MSQLPWD


2

Dipende dalla tua shell. Stai usando Microsoft Windows o Linux? Se si utilizza Linux / BASH, è probabile che $$ venga interpretato come l'ID del processo corrente. Hai provato a mettere una barra rovesciata davanti a ogni segno di dollaro? per esempio

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

Nota che gzip probabilmente richiede l'opzione "-c" se vuoi comprimere su STDOUT.


La password che sto usando non è PA $$ W0RD ma l'ho usata come esempio. La password effettiva che sto usando ha una e commerciale e questo è ciò che sta causando il problema. Ho usato la barra rovesciata come da te suggerito, ma non ha funzionato.
psynnott,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.