ฉันใช้ mysqldump ผ่านสคริปต์ทุบตีและพบปัญหากับรหัสผ่านที่มีอักขระพิเศษ
mysqldump -hlocalhost -uUSERNAME -pPA$$W0RD DATABASE |
gzip > /home/USERNAME/backups-mysql/BACKUP.gz
ฉันจะหลีกเลี่ยงรหัสผ่านได้อย่างไร
ฉันใช้ mysqldump ผ่านสคริปต์ทุบตีและพบปัญหากับรหัสผ่านที่มีอักขระพิเศษ
mysqldump -hlocalhost -uUSERNAME -pPA$$W0RD DATABASE |
gzip > /home/USERNAME/backups-mysql/BACKUP.gz
ฉันจะหลีกเลี่ยงรหัสผ่านได้อย่างไร
คำตอบ:
ฉันพบคำตอบ คุณต้องอ้างรหัสผ่านเช่นนี้:
mysql -u root -p'PASSWORD'
คุณต้องทำสิ่งนี้หากรหัสผ่านมีอักขระใด ๆ ต่อไปนี้: * ? [ < > & ; ! | $ ( )
เมื่อคุณใช้เครื่องหมายคำพูดตรวจสอบให้แน่ใจว่าไม่มีที่ว่าง:
ระหว่าง-p
และ'PASSWORD'
หรือ
ระหว่าง--password=
และ'PASSWORD'
แก้ไข:
mysql -u root -p'PASSWORD'
mysql -u root --password='PASSWORD'
ไม่สำเร็จ:
mysql -u root -p 'PASSWORD'
mysql -u root --password = 'PASSWORD'
คุณยังสามารถกำหนดตัวแปรแล้วใช้สำหรับคำสั่ง (ยังไม่มีช่องว่างในระหว่าง)
MSQLPWD='PASSWORD'
mysql -u root -p$MSQLPWD
ขึ้นอยู่กับเปลือกของคุณ คุณใช้ Microsoft Windows หรือ Linux หรือไม่ หากคุณใช้ Linux / BASH อาจเป็นไปได้ว่า $$ กำลังถูกตีความเป็นรหัสกระบวนการปัจจุบันของคุณ คุณลองใส่แบ็กสแลชต่อหน้าเครื่องหมายดอลลาร์แต่ละอันหรือไม่? เช่น
mysqldump \
-hlocalhost \
-uUSERNAME \
-pPA\$\$W0RD \
DATABASE \
| gzip -c \
> /home/USERNAME/backups-mysql/BACKUP.gz
โปรดทราบว่า gzip อาจต้องการตัวเลือก "-c" หากคุณต้องการบีบอัดไปยัง STDOUT
ลอง backslashing ( \
) ตัวอักษรพิเศษเหล่านั้น