mysql - Bash 恢复数据库 MySQL

标签 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 服务器版本对应的手册,了解在第 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/

相关文章:

linux - 如何运行没有 .sh 扩展名的 bash 脚本?

MYSQL 更新两个表的值

php - php中具有相同输入名称的多次插入

mysql - SQL如何统计相同专业的人数

java - 将默认的 hibernate createSQLQuery 转换为自制类的列表

bash - linux bash,命令 'gnome-terminal",转义引号

基于指定表列的 SQL 外键

regex - Unix - 如何替换无效字符?

linux - 找不到事件错误

java - 如何构建一个像二进制文件一样的 google-chrome 包装脚本?