Bash恢复数据库MySQL

时间:2013-10-09 01:01:35

标签: mysql bash

我的bash:测试

#!/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 

不工作,在第1行显示“ERROR 1064(42000):您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以便在”bckp_2013.sql“附近使用正确的语法1"

但这有效:

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

有什么建议吗?感谢。

1 个答案:

答案 0 :(得分: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