Рейтинг:0

mysqldump — имя пользователя также принимает «-p»

флаг in

Я использую следующий сценарий для чтения учетных данных базы данных из установки 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' (с использованием пароля: НЕТ) при попытке подключения

Когда я использую выражение следующим образом:

mysqldump --add-drop-table -udatabaseuser -p8zSkcRrgVad3F база данных > ../backups/test.sql 2>&1

Все работает нормально. У меня нет специальных символов в моем пользователе/базе данных/пароле, но команда принимает -p8zSkcRrgVad3F как и имя пользователя? Нужно ли мне обрезать значения раньше или что-то в этом роде?

Рейтинг:1
флаг cn

Похоже, что имя пользователя пусто, поэтому фактическая команда выглядит так

mysqldump --add-drop-table -u -p8zSkcRrgVad3F ...

(8zSkcRrgVad3F Ваш пароль)

Во-первых, добавьте пробелы между флагами и переменными, а во-вторых, я думаю, что ошибка заключается в том, что вы используете неправильные имена переменных. Вы упомянули тестирование эхо $DB_USER который работает, но вы используете $DB_USERNAME в команде.

флаг in
Спасибо. Вот и все :( Я был слеп. Один вопрос. В чем разница между $VAR и ${VAR} ?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.