ฉันใช้สคริปต์ต่อไปนี้เพื่ออ่านข้อมูลประจำตัวของฐานข้อมูลจากการติดตั้ง Wordpress:
DB_NAME=$(sed -n "s/define( *'DB_NAME', *'\([^']*\)'.*/\1/p" wp-config.php)
DB_USER=$(sed -n "s/define( *'DB_USER', *'\([^']*\)'.*/\1/p" wp-config.php)
DB_PASSWORD=$(sed -n "s/define( *'DB_PASSWORD', *'\([^']*\)'.*/\1/p" wp-config.php)
DB_HOST=$(sed -n "s/define( *'DB_HOST', *'\([^']*\)'.*/\1/p" wp-config.php)
เมื่อฉันสะท้อนตัวแปรดังนี้:
ก้อง $DB_NAME;
ก้อง $DB_USER;
สะท้อน $DB_PASSWORD;
ก้อง $DB_HOST;
ทุกอย่างปกติดี. เมื่อฉันใช้ใน mysqldump
คำแถลง:
mysqldump --add-drop-table -u${DB_USERNAME} -p${DB_PASSWORD} ${DB_NAME} > ../backups/${SQL_BACKUP} 2>&1
หรือ
mysqldump --add-drop-table -u$DB_USERNAME -p$DB_PASSWORD $DB_NAME > ../backups/$SQL_BACKUP 2>&1
ฉันได้รับข้อความแสดงข้อผิดพลาดนี้:
mysqldump: มีข้อผิดพลาด: 1045: การเข้าถึงถูกปฏิเสธสำหรับผู้ใช้ '-8zSkcRrgVad3F'@'localhost' (โดยใช้รหัสผ่าน: NO) เมื่อพยายามเชื่อมต่อ
เมื่อฉันใช้คำสั่งดังนี้:
mysqldump --add-drop-table -udatabaseuser -p8zSkcRrgVad3F ฐานข้อมูล > ../backups/test.sql 2>&1
ทุกอย่างทำงานได้ดี ฉันไม่มีตัวอักษรพิเศษในผู้ใช้/ฐานข้อมูล/รหัสผ่านของฉัน แต่คำสั่งใช้ไฟล์ -p8zSkcRrgVad3F
เป็นชื่อผู้ใช้ด้วยหรือไม่ ฉันต้องตัดค่าก่อนหรืออะไรทำนองนี้?