2014-12-18 4 views
0

В Dev Env Я использую имя db для имени пользователя и пароля. В моем Бродячей bootstrap.sh я следующие строки:Импорт MySQL дампа в оболочку с переменной в filename

dbname=master 
... 
/usr/bin/mysql -u ${dbname} -p${dbname} ${dbname} < /vagrant/vagrant/tmp/latest-${dbname}.sql 

На бродяга вверх я получаю ошибку

==> default: /tmp/vagrant-shell: line 273: id: command not found 
==> default: /tmp/vagrant-shell: line 273: email: command not found 
==> default: /tmp/vagrant-shell: line 273: phone: command not found 
... 

с электронной почтой и т.д. неоспоримым столбцы чтобы быть импортированной таблицы. Я интерпретирую это так, что мой sql-файл запускается как сценарий bash вместо beeing, переданного в mysql. Если я запустил ту же команду через ssh после того, как бродяга закончит, все будет работать. Где моя ошибка?

+0

попытка имя_бд = «мастер», а затем использовать его как «$ DBNAME» – tinySandy

+0

@BallPython, я никогда не понимал эту разницу. Пожалуйста, не могли бы вы объяснить? Благодаря! –

ответ

0

делая меня, что полдень, он ударил меня через 5 минут после размещения вопроса:

туздЫшпра ускользает имена столбцов с обратными кавычками. При использовании в bootstrap.sh эти обратные ссылки интерпретируются оператором обратной связи linux.

Решение заключается в выполнении туздЫшпр с параметром

--skip-quote-names 

Смежные вопросы