登录
首页 >  数据库 >  MySQL

如何使用 shell 脚本实时打印 SQL 执行过程并避免脚本卡死?

时间:2024-11-12 16:28:01 369浏览 收藏

积累知识,胜过积蓄金银!毕竟在数据库开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《如何使用 shell 脚本实时打印 SQL 执行过程并避免脚本卡死?》,就带大家讲解一下知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

如何使用 shell 脚本实时打印 SQL 执行过程并避免脚本卡死?

如何使用 shell 脚本跑库,并实时打印 sql 执行过程?

你在跑库脚本中通过以下命令后台执行 sql 脚本,会导致脚本卡死,直到 sql 脚本执行完毕:

mysql -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;" -vvv > ${basepath}/running_sql.log &

为了实时打印 sql 执行过程,可以在 mysql 命令后添加 -v 参数。然而,对于你这种情况,使用标准输出连接重定向会更合适:

mysql -v < ${basepath}/sql_execute/apphub/apphub_mysql_db_create.sql &
mysql -v < ${basepath}/sql_execute/bam/bam_mysql_db_create.sql &
mysql -v < ${basepath}/sql_execute/bim/bim_mysql_db_create.sql &
mysql -v < ${basepath}/sql_execute/epass/epass_mysql_db_create.sql &

这样,sql 执行过程的输出信息将直接输出到标准输出,你可以通过管道或重定向来处理这些输出信息,实现实时打印的功能。

以上就是《如何使用 shell 脚本实时打印 SQL 执行过程并避免脚本卡死?》的详细内容,更多关于的资料请关注golang学习网公众号!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>