[ Agent ] [ App ] - add mysql init
This commit is contained in:
74
agent-go/executor/MySqlFunction.go
Normal file
74
agent-go/executor/MySqlFunction.go
Normal file
@@ -0,0 +1,74 @@
|
||||
package executor
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"os"
|
||||
)
|
||||
|
||||
func MysqlSqlFileLoad(jackeyLoveFileList []string) (bool, []string) {
|
||||
|
||||
dsn := "root:QzfXQhd3bQ@tcp(127.0.0.1:33306)"
|
||||
db, err := sql.Open("mysql", dsn)
|
||||
if err != nil {
|
||||
errConnect := fmt.Sprintf("[MysqlSqlFileLoad]- mysql connection error ! please check ! => %s ", dsn)
|
||||
log.Error(errConnect)
|
||||
return false, []string{
|
||||
errConnect,
|
||||
}
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
// 确保数据库连接是有效的
|
||||
if err := db.Ping(); err != nil {
|
||||
errConnect := "[MysqlSqlFileLoad]- mysql ping error ! please check !"
|
||||
log.Error(errConnect)
|
||||
return false, []string{
|
||||
errConnect,
|
||||
}
|
||||
}
|
||||
|
||||
for _, jackeyLoveFile := range jackeyLoveFileList {
|
||||
|
||||
// 打开 SQL 文件
|
||||
jackeyLove, err := os.Open(jackeyLoveFile)
|
||||
if err != nil {
|
||||
log.ErrorF("[MysqlSqlFileLoad] - failed to load jackeyLoveFile => %s", jackeyLove)
|
||||
}
|
||||
defer jackeyLove.Close()
|
||||
|
||||
// 逐行读取 SQL 文件并执行
|
||||
scanner := bufio.NewScanner(jackeyLove)
|
||||
for scanner.Scan() {
|
||||
sqlStatement := scanner.Text()
|
||||
// 这里可以添加逻辑来忽略空行或注释行
|
||||
if sqlStatement == "" || 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,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 检查扫描过程中是否有错误
|
||||
if err := scanner.Err(); err != nil {
|
||||
executeError := fmt.Sprintf("[MysqlSqlFileLoad] - jackeyLoveFile %s 文件加载错误! 错误信息: %s", jackeyLove.Name(), err.Error())
|
||||
log.Error(executeError)
|
||||
return false, []string{
|
||||
executeError,
|
||||
}
|
||||
}
|
||||
|
||||
log.DebugF("[MysqlSqlFileLoad] - jackeyLoveFile %s execute success !", jackeyLove.Name())
|
||||
|
||||
}
|
||||
|
||||
return true, append(jackeyLoveFileList, "[MysqlSqlFileLoad] all file loaded !")
|
||||
}
|
||||
Reference in New Issue
Block a user