我有这个 .sh 脚本来优化表
#!/bin/sh
mysql -u'user' -p'pwd' -D'db' </var/www/vhosts/mydomain/httpdocs/optimize.sql
...以及optimize.sql 中的此sql
OPTIMIZE TABLE `this_table`
一切正常。
现在我正在做同样的事情来截断一个表:
#!/bin/sh
mysql -u'user' -p'pwd' -D'db' </var/www/vhosts/mydomain/httpdocs/truncate.sql
...以及 truncate.sql 中的此 sql
TRUNCATE TABLE `this_table`
...但是它不起作用!怎么了?
附言我使用 Crontab 每 x 分钟运行一次 .sh,这仅适用于优化
最佳答案
您也可以使用文件来存储 mysql 凭据,例如:
nano .my.cnf
并添加以下内容:
[mysql]
user=your_user
password=the_super_secret_password
然后像这样在你的 shell 脚本中执行你的 SQL 语句:
#!/bin/bash
`mysql --defaults-file=/path/to/.my.cnf -e "truncate table this_table;"`
为什么要将凭据放在单独的文件中? 这样一来,当需要更改密码时,您拥有的所有使用这些凭据的 shell 脚本都不必单独更新。
关于mysql - 如何从 .sh 脚本中截断表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18844745/