我的 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 服务器版本对应的手册,了解在第 1 行‘bckp_2013.sql’附近使用的正确语法1"
但这有效:
mysql --password=my_password --user=my_user my_db < bckp_2013.sql
有什么建议吗?谢谢。
最佳答案
试试这个:
#!/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
关于mysql - Bash 恢复数据库 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19261226/