Jawaban:
Saya menemukan jawabannya. Anda harus mengutip kata sandi, seperti ini:
mysql -u root -p'PASSWORD'
Anda harus melakukan ini jika kata sandi memiliki karakter berikut: * ? [ < > & ; ! | $ ( )
ketika Anda menggunakan tanda kutip, pastikan tidak ada spasi:
antara -p
dan 'PASSWORD'
atau
antara --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
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
mysqldump \
-hlocalhost \
-uUSERNAME \
-pPA\$\$W0RD \
DATABASE \
| gzip -c \
> /home/USERNAME/backups-mysql/BACKUP.gz
Perhatikan bahwa gzip mungkin memerlukan opsi "-c" jika Anda ingin mengompres ke STDOUT.