From 8e0706a4bab89b50f78b2e98d7b6a29dc94a1a64 Mon Sep 17 00:00:00 2001 From: zeaslity Date: Tue, 28 Nov 2023 12:00:19 +0800 Subject: [PATCH] [ Agent ] [ App ] - fix mysql init bugs - 6 --- agent-go/executor/MySqlFunction.go | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/agent-go/executor/MySqlFunction.go b/agent-go/executor/MySqlFunction.go index 2122032..3c566df 100644 --- a/agent-go/executor/MySqlFunction.go +++ b/agent-go/executor/MySqlFunction.go @@ -6,6 +6,7 @@ import ( "fmt" _ "github.com/go-sql-driver/mysql" "os" + "strings" ) func MysqlSqlFileLoad(jackeyLoveIp string, jackeyLoveFileList []string) (bool, []string) { @@ -40,22 +41,29 @@ func MysqlSqlFileLoad(jackeyLoveIp string, jackeyLoveFileList []string) (bool, [ defer jackeyLove.Close() // 逐行读取 SQL 文件并执行 + query := "" scanner := bufio.NewScanner(jackeyLove) for scanner.Scan() { sqlStatement := scanner.Text() // 这里可以添加逻辑来忽略空行或注释行 - if sqlStatement == "" || sqlStatement[:2] == "--" { + if sqlStatement == "" || sqlStatement[:2] == "--" || sqlStatement[:2] == "/*" { continue } // 执行 SQL 语句 - _, err := db.Exec(sqlStatement) - if err != nil { - executeError := fmt.Sprintf("[MysqlSqlFileLoad] - jackeyLoveFile %s 执行出错: %s, 错误信息: %s", jackeyLove.Name(), sqlStatement, err.Error()) - log.Error(executeError) - return false, []string{ - executeError, + query += sqlStatement + " " + if strings.Contains(sqlStatement, ";") { + _, err := db.Exec(query) + if err != nil { + executeError := fmt.Sprintf("[MysqlSqlFileLoad] - jackeyLoveFile %s 执行出错: %s, 错误信息: %s", jackeyLove.Name(), sqlStatement, err.Error()) + log.Error(executeError) + return false, []string{ + executeError, + } } + // reset + query = "" } + } // 检查扫描过程中是否有错误