Mysql 如何从.sh脚本截断表?

Mysql 如何从.sh脚本截断表?,mysql,sql,linux,Mysql,Sql,Linux,我有这个.sh脚本来优化表 #!/bin/sh mysql -u'user' -p'pwd' -D'db' </var/www/vhosts/mydomain/httpdocs/optimize.sql 这一切都很好 现在我正在做同样的事情来截断一个表: #!/bin/sh mysql -u'user' -p'pwd' -D'db' </var/www/vhosts/mydomain/httpdocs/truncate.sql …但它不起作用!怎么了 另外,我使用Cronta

我有这个.sh脚本来优化表

#!/bin/sh 
mysql -u'user' -p'pwd' -D'db' </var/www/vhosts/mydomain/httpdocs/optimize.sql
这一切都很好

现在我正在做同样的事情来截断一个表:

#!/bin/sh 
mysql -u'user' -p'pwd' -D'db' </var/www/vhosts/mydomain/httpdocs/truncate.sql
…但它不起作用!怎么了

另外,我使用Crontab每x分钟运行一次.sh,这只适用于优化

您也可以

#!/bin/sh 
echo "truncate table this_table" | mysql -u'user' -p'pwd' -D'db'
你也可以

#!/bin/sh 
echo "truncate table this_table" | mysql -u'user' -p'pwd' -D'db'

您还可以使用文件存储mysql凭据,例如:

nano .my.cnf
并添加以下内容:

[mysql]
user=your_user
password=the_super_secret_password
然后在shell脚本中执行SQL语句,如下所示:

为什么要将凭据放在单独的文件中?
这样,在更改密码时,您拥有的所有使用这些凭据的shell脚本都不必单独更新。

您还可以使用文件存储mysql凭据,例如:

nano .my.cnf
并添加以下内容:

[mysql]
user=your_user
password=the_super_secret_password
然后在shell脚本中执行SQL语句,如下所示:

为什么要将凭据放在单独的文件中?
因此,在更改密码时,您使用这些凭据的所有shell脚本都不必单独更新。

:-)哦,不,不……这只是一个示例,但现在我要编辑它……您有什么想法吗?为什么它不起作用?:-)哦,不,不…这只是一个例子,但现在我要编辑它…你有什么想法吗?为什么它不起作用?好的,现在我将尝试…但是…在你的.sh脚本semms中,我无法指定我的sql查询…你确定它应该起作用吗?好的,我只是说你可以回送查询而不是分类查询,并且只插入一个sh文件,而不是两个(sh+sql)文件。我觉得很方便。它做同样的事情。而且应该可以工作(如果用户有权限并且存在表,并且mysql在cron%路径中),好的,现在我将尝试…但是…在你的.sh脚本semms中,我不能指定我的sql查询…你确定它应该工作吗?好的,我只是说你可以回送查询而不是分类查询,并且只有一个sh文件插入两个(sh+sql)文件。我觉得很方便。它做同样的事情。并且应该可以工作(如果用户拥有权限并且存在表,并且mysql位于cron%路径中)