gpt4 book ai didi

go - 在引擎运行期间终止mariadb服务

转载 作者:行者123 更新时间:2023-12-01 22:20:27 28 4
gpt4 key购买 nike

我的应用程序已连接到另一台服务器上的Maria Db,所以一旦启动引擎,它就会通过查询数据库来获取数据,我想做的是,我的应用程序每5秒就会从数据库查询一次
我刚刚终止了maria DB服务

service mariadb stop
完成此操作后,在我正在执行查询的应用程序中抛出此错误:
panic: runtime error: invalid memory address or nil pointer dereference
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x54c9a6]

goroutine 50 [running]:
database/sql.(*Rows).close(0x0, 0x0, 0x0, 0x0, 0x0)
/home/go1.14/go/src/database/sql/sql.go:3063 +0x76
database/sql.(*Rows).Close(0x0, 0x0, 0x0)
/home/go1.14/go/src/database/sql/sql.go:3059 +0x33
panic(0x8d03e0, 0xf3dd00)
/home/go1.14/go/src/runtime/panic.go:969 +0x166
database/sql.(*Rows).Next(0x0, 0x1)
/home/go1.14/go/src/database/sql/sql.go:2744 +0x30
path-to-file/loadConfig.LoadFromDB(0x9ff760, 0xc0000240a0, 0xc000192000, 0xf, 0x0, 0x0, 0x0, 0x0)
path-to-file/loadConfig/loadConfig.go:65 +0x1a2
我的代码如下所示:
func LoadFromDB(Ctx context.Context, Conn *sql.DB, modId int) (map[string][]string, map[string]string, error) {
rows, err := Conn.Query(getQueryFromFile("QUERY"),modId)

if err != nil {
log.Println("LOAD CONFIG: Error establishing connection to DB")
}
defer rows.Close()
configValues := make(map[string][]string)
configTimeVal := make(map[string]string)
for rows.Next() {
configParam := ""
configVal := ""
var configLastUpdated string
eror := rows.Scan(&configParam, &configVal, &configLastUpdated)
if eror != nil {
return nil, nil, eror
} else {
configValues[configParam] = append(configValues[configParam], configVal)
configTimeVal[configParam] = configLastUpdated
}
}

return configValues, configTimeVal, nil
}
你们可以帮助我解决玛丽亚数据库服务停止时的这种情况吗

最佳答案

错误为非nil时,您会丢失return,因此该功能将继续运行。尝试这个:

    if err != nil {
log.Println("LOAD CONFIG: Error establishing connection to DB")
return nil, nil, err
}
您还需要处理 Next()函数中的错误;查看文档:

Next准备下一个结果行,以使用Scan方法读取。如果成功,它将返回true;如果没有下一个结果行或在准备它时发生错误,则返回false。应咨询Err来区分这两种情况。

关于go - 在引擎运行期间终止mariadb服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63886791/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com