如何使用 shell 腳本實時打印執行 SQL 的過程?

如何使用 shell 腳本實時打印執行 SQL 的過程?

如何使用 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 的輸出可能較多,因此你需要合理地處理這些信息,保證腳本的健壯性。

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享