如何使用 shell 脚本实时打印执行 sql 的过程

你的 shell 脚本通过 mysql 命令执行 sql 脚本,但是执行后会卡死,无法实时看到结果。为了解决这个问题,可以使用 -v 参数进行优化。

-v 参数允许 mysql 命令在执行 sql 语句时输出额外的信息。具体来说,它会打印每个语句的状态信息,如:

query ok, 1 row affected (0.00 sec)
records: 1  duplicates: 0  warnings: 0
登录后复制

通过在你的脚本中添加 -v 参数,即可实时打印执行 sql 的过程,如下所示:

mysql -vvv -h$mysqlhost -uroot -p$rootpwd -P$mysqlport -e 
"use mysql;source ${basepath}/sql_execute/apphub/apphub_mysql_db_create.sql;
source ${basepath}/sql_execute/bam/bam_mysql_db_create.sql;  
source ${basepath}/sql_execute/bim/bim_mysql_db_create.sql; 
source ${basepath}/sql_execute/epass/epass_mysql_db_create.sql; 
use apphub${suffix}; 
source ${basepath}/sql_execute/apphub/apphub_mysql_table_and_data.sql; 
use bam${suffix}; 
source ${basepath}/sql_execute/bam/bam_mysql_table_and_data.sql; 
use bim${suffix}; 
source ${basepath}/sql_execute/bim/bim_mysql_table_and_data.sql; 
use epass${suffix}; 
source ${basepath}/sql_execute/epass/epass_mysql_table_and_data.sql;" > ${basepath}/running_sql.log &
登录后复制

需要注意的是,mysql -v 的输出可能较多,因此你需要合理地处理这些信息,保证脚本的健壮性。

以上就是如何使用 shell 脚本实时打印执行 SQL 的过程?的详细内容,更多请关注慧达安全导航其它相关文章!

点赞(0)

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部