Tôi sử dụng tập lệnh sau để đọc thông tin xác thực cơ sở dữ liệu từ bản cài đặt 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)
Khi tôi lặp lại các biến như thế này:
tiếng vang $DB_NAME;
tiếng vang $DB_USER;
tiếng vang $DB_PASSWORD;
tiếng vang $DB_HOST;
Mọi thứ đều ổn. Khi tôi sử dụng chúng trong một mysqldump
bản tường trình:
mysqldump --add-drop-table -u${DB_USERNAME} -p${DB_PASSWORD} ${DB_NAME} > ../backups/${SQL_BACKUP} 2>&1
hoặc
mysqldump --add-drop-table -u$DB_USERNAME -p$DB_PASSWORD $DB_NAME > ../backups/$SQL_BACKUP 2>&1
tôi nhận được thông báo lỗi này:
mysqldump: Gặp lỗi: 1045: Truy cập bị từ chối đối với người dùng '-8zSkcRrgVad3F'@'localhost' (sử dụng mật khẩu: KHÔNG) khi cố gắng kết nối
Khi tôi sử dụng câu lệnh như thế này:
mysqldump --add-drop-table -udatabaseuser -p8zSkcRrgVad3F cơ sở dữ liệu > ../backups/test.sql 2>&1
Mọi thứ đều hoạt động tốt. Tôi không có ký tự đặc biệt nào trong người dùng/cơ sở dữ liệu/mật khẩu của mình, nhưng lệnh lấy -p8zSkcRrgVad3F
như tên người dùng là tốt? Tôi có cần cắt bớt các giá trị trước đó hoặc đại loại như thế này không?