Saya menjalankan mysqldump melalui skrip bash dan telah mengalami masalah dengan kata sandi yang berisi karakter khusus.
mysqldump -hlocalhost -uUSERNAME -pPA$$W0RD DATABASE |
gzip > /home/USERNAME/backups-mysql/BACKUP.gz
Bagaimana cara saya lolos dari kata sandi?
passwords
escape-characters
mysqldump
psynnott
sumber
sumber
ketika Anda menggunakan tanda kutip, pastikan tidak ada spasi:
antara
-p
dan'PASSWORD'
atauantara
--password=
dan'PASSWORD'
benar:
mysql -u root -p'PASSWORD'
mysql -u root --password='PASSWORD'
tidak bekerja:
mysql -u root -p 'PASSWORD'
mysql -u root --password = 'PASSWORD'
Anda juga dapat mendefinisikan variabel dan kemudian menggunakannya untuk perintah (masih tanpa spasi di antaranya)
MSQLPWD='PASSWORD'
mysql -u root -p$MSQLPWD
sumber
Tergantung pada cangkang Anda. Apakah Anda menggunakan Microsoft Windows atau Linux? Jika Anda menggunakan Linux / BASH maka kemungkinan $$ sedang ditafsirkan sebagai ID proses Anda saat ini. Sudahkah Anda mencoba meletakkan backslash di depan setiap tanda dolar? misalnya
Perhatikan bahwa gzip mungkin memerlukan opsi "-c" jika Anda ingin mengompres ke STDOUT.
sumber
Coba backslashing (
\
) karakter khusus itu.sumber