mysql - 如何在没有过多密码请求的情况下从终端循环

标签 mysql sql linux terminal centos

当从 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/

相关文章:

javascript - 上传站点文件,index.html 或 home.html

mysql - 声明游标时使用变量

linux - 从 F1.sql 提取行到 F2.sql

mysql - 求助SQL语句

php - 如何将不同的表单数据发送到php文件以保存在数据库中

mysql - 如何计算一列中不同数据的总值(value)

linux - 自动挂载加密分区

linux - 添加新的 veth 接口(interface)时运行脚本

mysql - MySQL 的 SQL 管理器 - 选择插入空行

sql - Oracle 中相当于 SQL Server 的 SET NOCOUNT ON 的是什么?