当从 Linux (CentOS 7) 终端运行以下 MySQL 代码时,以下命令似乎在循环中询问每个表的密码。有 500 多张 table 。我输入密码 500 次以上是不合理的。我该如何修复下面的代码,使其只要求输入密码几次?
mysql -u root -p -Nse 'show tables' DATABASE_NAME | while read table; do mysql -u root -p -e "SET FOREIGN_KEY_CHECKS = 0; truncate table $table" DATABASE_NAME; done;
编辑
有没有办法不用在命令行日志中输入密码就可以做到这一点?
最佳答案
把密码放在p后面(没有空格),假设你的密码是PASSWORD
mysql -u root -pPASSWORD -Nse 'show tables' DATABASE_NAME | while read table; do mysql -u root -pPASSWORD -e "SET FOREIGN_KEY_CHECKS = 0; truncate table $table" DATABASE_NAME; done;
关于mysql - 如何在没有过多密码请求的情况下从终端循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27933828/