2013-10-09 2 views
0

Мой Баш: тестированиеBash восстановления базы данных MySQL

#!/bin/bash 

case $1 in  
"restore") tar xzvf $2 | mysql --password=my_password --user=my_user my_db;; 
*) echo "Others";; 
esac 

Тестирование:

testing restore bckp_2013.tgz 

Не работает, шоу «ERROR 1064 (42000) в строке 1: У вас ошибка в вашем синтаксисе SQL; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать вблизи «bckp_2013.sql» в строке 1"

Но это работает:

mysql --password=my_password --user=my_user my_db < bckp_2013.sql 

Любые предложения? Благодарю.

ответ

1

попробовать это:

#!/bin/bash 

case $1 in  
"restore") tar xzvf $2; 
      sqlfile=$(ls -t *.sql | xargs); 
      mysql --password=my_password --user=my_user my_db < $sqlfile;; 
*) echo "Others";; 
esac 
+0

спасибо Давиду. Обработка сейчас! – alditis

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